Part Number Hot Search : 
WSLT2512 MC1358 B15101ZB HXTR2102 MJH16004 BTA40 IRFU48Z 14101
Product Description
Full Text Search
 

To Download LFECP10E-3FN484C Datasheet File

  If you can't view the Datasheet, Please click here to try to view without PDF Reader .  
 
 


  Datasheet File OCR Text:
  latticeecp/ec family handbook hb1000 version 03.3, march 2010
march 2010 ?2010 lattice semiconductor corp. all lattice trademarks, registered trademarks, patents, and disclaimers are as listed at www .latticesemi.com/legal. all other brand or product names are trademarks or registered trademarks of their respective holders. the specifications and information herein are subject to change without notice. www.latticesemi.com 1 section i. latticeecp/ec family data sheet introduction features ....................................................................................................................... ...................................... 1-1 introduction ................................................................................................................... ..................................... 1-2 architecture architecture overview .......................................................................................................... .............................. 2-1 pfu and pff blocks............................................................................................................. ............................. 2-3 slice .......................................................................................................................... ................................ 2-3 routing........................................................................................................................ ....................................... 2-7 clock distribution network ..................................................................................................... ............................ 2-7 primary clock sources.......................................................................................................... .................... 2-7 secondary clock sources........................................................................................................ ................. 2-8 clock routing.................................................................................................................. .......................... 2-8 sysclock phase locked loops (plls) ............................................................................................. ..... 2-9 dynamic clock select (dcs) ..................................................................................................... ...................... 2-11 sysmem memory .................................................................................................................. ........................... 2-12 sysmem memory block............................................................................................................ ............... 2-12 bus size matching .............................................................................................................. .................... 2-12 ram initialization and rom operation ........................................................................................... ........ 2-12 memory cascading ............................................................................................................... .................. 2-13 single, dual and pseudo-dual port modes........................................................................................ ..... 2-13 memory core reset .............................................................................................................. .................. 2-13 ebr asynchronous reset......................................................................................................... .............. 2-14 sysdsp block................................................................................................................... ................................ 2-14 sysdsp block approach compare to general dsp ............................................................................... 2-15 sysdsp block capabilities ...................................................................................................... ................ 2-15 mult sysdsp element ............................................................................................................ .............. 2-16 mac sysdsp element ............................................................................................................. ............... 2-16 multadd sysdsp element......................................................................................................... .......... 2-17 multaddsum sysdsp element...................................................................................................... ..... 2-18 clock, clock enable and reset resources ........................................................................................ .... 2-18 signed and unsigned with different widths...................................................................................... ...... 2-19 overflow flag from mac ......................................................................................................... ......... 2-19 ipexpress..................................................................................................................... ........................ 2-20 optimized dsp functions ........................................................................................................ ............... 2-20 resources available in the latticeecp family ................................................................................... .... 2-20 dsp performance of the latticeecp family....................................................................................... .... 2-20 programmable i/o cells (pic) ................................................................................................... ...................... 2-21 pio ............................................................................................................................ .............................. 2-22 ddr memory support............................................................................................................. ......................... 2-26 dll calibrated dqs delay block ................................................................................................. .......... 2-26 polarity control logic ......................................................................................................... ..................... 2-28 sysio buffer ................................................................................................................... .................................. 2-28 sysio buffer banks ............................................................................................................. .................... 2-28 typical i/o behavior during power-up........................................................................................... ......... 2-30 supported standards ............................................................................................................ .................. 2-30 hot socketing.................................................................................................................. ........................ 2-31 configuration and testing ...................................................................................................... .......................... 2-31 latticeecp/ec family handbook table of contents
table of contents lattice semiconductor latticeecp/ ec family data sheet 2 ieee 1149.1-comp liant boundary scan te stability............. ................ ............. ............. ............ ............. 2-31 device configuration........................................................................................................... .................... 2-32 internal logic analyzer capability (isptracy)....... ........................................................................... ..... 2-32 external resistor.............................................................................................................. ....................... 2-32 oscillator ..................................................................................................................... ............................ 2-33 density shifting ............................................................................................................... ................................. 2-33 dc and switching characteristics absolute maximum ratings ............................................................................................................................... 3-1 recommended operating conditions ............................................................................................... ................. 3-1 hot socketing specifications................................................................................................... ........................... 3-1 dc electrical characteristics.................................................................................................. ............................ 3-2 supply current (standby)....................................................................................................... ............................ 3-3 initialization supply current .................................................................................................. ............................. 3-4 sysio recommended operating conditions......................................................................................... ............. 3-5 sysio single-ended dc electrical characteristics............................................................................... .............. 3-6 sysio differential electrical characteristics .................................................................................. ..................... 3-7 lvds........................................................................................................................... .............................. 3-7 differential hstl and sstl..................................................................................................... ................. 3-8 lvds25e ........................................................................................................................ .......................... 3-8 blvds .......................................................................................................................... ............................ 3-9 lvpecl ......................................................................................................................... ......................... 3-10 rsds ........................................................................................................................... ........................... 3-11 typical building block function performance.................................................................................... .............. 3-12 pin-to-pin performance (lvcmos25 12ma drive) ................................................................................ 3-12 register-to-register performance1 .............................................................................................. .......... 3-12 derating timing tables ......................................................................................................... ........................... 3-13 latticeecp/ec external switching characteristics............................................................................... ........... 3-14 latticeecp/ec internal switching characteristics ............................................................................... ............ 3-16 timing diagrams ................................................................................................................ .............................. 3-18 pfu timing diagrams............................................................................................................ ................. 3-18 ebr memory timing diagrams..................................................................................................... .......... 3-19 latticeecp/ec family timing adders , , ........................................................................................................... 3-21 sysclock pll timing ............................................................................................................ ........................ 3-23 latticeecp/ec sysconfig port timing specifications ............................................................................. ..... 3-24 master clock ................................................................................................................... ........................ 3-25 jtag port timing specifications ................................................................................................ ..................... 3-29 switching test conditions...................................................................................................... .......................... 3-30 pinout information signal descriptions ............................................................................................................ ................................ 4-1 pics and ddr data (dq) pins associated with the ddr strobe (dqs) pin .................................................... 4-3 pin information summary........................................................................................................ ........................... 4-4 pin information summary (cont.)................................................................................................ ....................... 4-5 power supply and nc connections................................................................................................ ................... 4-6 power supply and nc connections (cont.)........................................................................................ ............... 4-7 lfec1, lfec3 logic signal connections: 100 tqfp................................................................................ ....... 4-8 lfec1, lfec3, lfecp/ec6 logic signal connections: 144 tqfp ............................................................... 4-11 lfec1, lfec3 logic signal connections: 208 pqfp ................................................................................ .... 4-14 lfecp/ec6, lfecp/ec10 logic signal connections: 208 pqfp.................................................................. 4-19 lfec3 and lfecp/ec6 logic signal connections: 256 fpbga ..................................................................... 4-2 4 lfecp/ec10 and lfecp/ec15 logic signal connections: 256 fpbga......................................................... 4-31 lfecp/ec6, lfecp/ec10, lfecp/ec15 logic signal connections: 484 fpbga ......................................... 4-38 lfecp/ec20 and lfecp/ec33 logic signal connections: 484 fpbga......................................................... 4-49 lfecp/ec20, lfecp/ec33 logic signal connections: 672 fpbga............................................................... 4-62 thermal management ............................................................................................................. ......................... 4-80
table of contents lattice semiconductor latticeecp/ ec family data sheet 3 for further information ........................................................................................................ ................... 4-80 ordering information part number description........................................................................................................ ............................ 5-1 ordering information ........................................................................................................... ............................... 5-1 conventional packaging ......................................................................................................... .................. 5-2 lead-free packaging............................................................................................................ .................... 5-8 supplemental information for further information ........................................................................................................ .............................. 6-1 latticeecp/ec family data sheet revision history latticeecp/ec family data sheet revision history............................................................................... ........... 7-1 section ii. latticeecp/ ec family technical notes latticeecp/ec and latticexp sysio usage guide introduction ................................................................................................................... ..................................... 8-1 sysio buffer overview .......................................................................................................... ............................. 8-1 supported sysio standards ...................................................................................................... ......................... 8-1 sysio banking scheme........................................................................................................... ........................... 8-2 v ccio (1.2v/1.5v/1.8v/2.5v/3.3v) .................................................................................................... ........ 8-3 v ccaux (3.3v) ........................................................................................................................ ................... 8-3 v ccj (1.2v/1.5v/1.8v/2.5v/3.3v).................................................................................................... .......... 8-3 input reference voltage (v ref1, v ref2 )................................................................................................... 8-3 v ref1 for ddr memory interface ...................................................................................................... ....... 8-3 mixed voltage support in a bank................................................................................................ .............. 8-4 sysio standards supported in each bank......................................................................................... ................ 8-5 lvcmos buffer configurations ................................................................................................... ...................... 8-5 programmable pull-up/pull-down/buskeeper....................................................................................... .... 8-5 programmable drive ............................................................................................................. .................... 8-5 programmable slew rate ......................................................................................................... ................ 8-7 open drain control ............................................................................................................. ...................... 8-7 differential sstl and hstl support ............................................................................................. .................... 8-7 pci support with programmable pciclamp ......................................................................................... ........... 8-7 5v interface with pci clamp diode.............................................................................................. ...................... 8-8 programmable input delay ....................................................................................................... ......................... 8-9 software sysio attributes...................................................................................................... ............................. 8-9 io_type ........................................................................................................................ ........................... 8-9 opendrain...................................................................................................................... ..................... 8-10 drive .......................................................................................................................... ........................... 8-10 pullmode ....................................................................................................................... ..................... 8-11 pciclamp....................................................................................................................... ....................... 8-11 slewrate ....................................................................................................................... ..................... 8-11 fixeddelay..................................................................................................................... ..................... 8-11 din/dout....................................................................................................................... ........................ 8-11 loc............................................................................................................................ ............................. 8-12 design considerations and usage................................................................................................ ................... 8-12 banking rules .................................................................................................................. ....................... 8-12 differential i/o rules ......................................................................................................... ...................... 8-12 assigning v ref / v ref groups for referenced inputs............................................................................. 8-12 differential i/o implementation................................................................................................ ......................... 8-13 lvds........................................................................................................................... ............................ 8-13 blvds .......................................................................................................................... .......................... 8-13 rsds ........................................................................................................................... ........................... 8-13 lvpecl ......................................................................................................................... ......................... 8-13 differential sstl and hstl..................................................................................................... ............... 8-13 technical support assistance................................................................................................... ....................... 8-13
table of contents lattice semiconductor latticeecp/ ec family data sheet 4 appendix a. hdl attributes for synplify and precision rtl synthesis ........................................................ 8-14 vhdl synplify/precision rtl synthesis.......................................................................................... ................ 8-14 syntax ......................................................................................................................... ............................ 8-14 examples ....................................................................................................................... ......................... 8-14 verilog for synplify ........................................................................................................... ................................ 8-17 syntax ......................................................................................................................... ............................ 8-17 examples ....................................................................................................................... ......................... 8-17 verilog for precision rtl synthesis............................................................................................ ..................... 8-19 syntax ......................................................................................................................... ............................ 8-19 example ........................................................................................................................ .......................... 8-19 appendix b. sysio attributes using preference editor user interface............................................................ .8-21 appendix c. sysio attributes using preference file (ascii file) ................................................................ .... 8-22 iobuf .......................................................................................................................... ........................... 8-22 locate......................................................................................................................... ......................... 8-22 use din cell................................................................................................................... ..................... 8-23 use dout cell.................................................................................................................. .................. 8-23 pgroup vref .................................................................................................................... .................. 8-23 memory usage guide for latticeecp/ec and latticexp devices introduction ................................................................................................................... ..................................... 9-1 memories in latticeecp/ec and latticexp devices ................................................................................ ......... 9-1 utilizing ipexpress............................................................................................................ .................................. 9-3 ipexpress flow................................................................................................................. ......................... 9-3 memory modules................................................................................................................. ............................... 9-7 single port ram (ram_dq) ebr based ........................................................................................... ... 9-7 true dual port ram (ram_dp_true) ebr based ........................................................................... 9-13 pseudo dual port ram (ram_dp) ebr-based.................................................................................. 9-22 read only memory (rom) ?ebr based............................................................................................. .. 9-25 first in first out (fifo, fifo_dc) ebr based................................................................................. .. 9-28 distributed single port ram (distributed_spram) pfu based.......................................................... 9-44 distributed dual port ram (distributed_dpram) ?pfu based ............................................................ 9-46 distributed rom (distributed_rom) ?pfu based ................................................................................ 9- 49 initializing memory ............................................................................................................ ............................... 9-51 initialization file format ..................................................................................................... ..................... 9-51 technical support assistance................................................................................................... ....................... 9-53 revision history ............................................................................................................... ................................ 9-53 appendix a. attribute definitions.............................................................................................. ........................ 9-54 data_width..................................................................................................................... .................... 9-54 regmode........................................................................................................................ ...................... 9-54 resetmode ........ ................ ................. ................ ................ ................ ................ ............. ................... 9-54 csdecode....................................................................................................................... ..................... 9-54 writemode...................................................................................................................... .................... 9-54 gsr ............................................................................................................................ ............................ 9-54 latticeecp/ec and latticexp ddr usage guide introduction ................................................................................................................... ................................... 10-1 ddr sdram interfaces overview.................................................................................................. ................. 10-1 implementing ddr memory interfaces with the latticeecp/ec devices........................................................ 10-2 dqs grouping................................................................................................................... ...................... 10-2 ddr software primitives........................................................................................................ ................. 10-5 memory read implementation ..................................................................................................... ........... 10-9 data read critical path........................................................................................................ ................. 10-12 dqs postamble .................................................................................................................. .................. 10-13 memory write implementation .................................................................................................... .......... 10-14 design rules/guidelines........................................................................................................ ............... 10-16 qdr ii interface ............................................................................................................... ..................... 10-17
table of contents lattice semiconductor latticeecp/ ec family data sheet 5 fcram (fast cycle random access memory) interface..................................................................... 10-17 generic high speed ddr implementation .......................................................................................... .......... 10-17 board design guidelines ........................................................................................................ ....................... 10-17 references..................................................................................................................... ................................ 10-18 technical support assistance................................................................................................... ..................... 10-18 revision history ............................................................................................................... .............................. 10-18 appendix a. using ipexpress to generate ddr modules.......................................................................... 1 0-19 ddr generic.................................................................................................................... ..................... 10-19 ddr memory interface ........................................................................................................... .............. 10-20 appendix b. verilog example for ddr input and output modules ................................................................ 10- 21 appendix c. vhdl example for ddr input and output modules.................................................................. 10-2 3 appendix d. generic (non -memory) high-speed ddr inte rface .................................................................. 10-2 8 vhdl implementation ............................................................................................................ ............... 10-28 verilog example ................................................................................................................ .................... 10-30 preference file................................................................................................................ ...................... 10-31 appendix e. list of compatible ddr sdram ....................................................................................... ........ 10-32 appendix f. ddr400 interface using the latticeec evaluation board.......................................................... 10-3 5 latticeecp/ec and latticexp sysclock pll design and usage guide introduction ................................................................................................................... ................................... 11-1 features ....................................................................................................................... .................................... 11-1 functional description......................................................................................................... ............................. 11-1 pll divider and delay blocks................................................................................................... .............. 11-1 pll inputs and outputs ......................................................................................................... ................. 11-2 pll attributes................................................................................................................. ......................... 11-3 latticeecp/ec and latticexp pll primitive definitions.......................................................................... ........ 11-4 pll attributes definitions..................................................................................................... ................... 11-4 dynamic delay adjustment ....................................................................................................... .............. 11-6 pll usage in ipexpress......................................................................................................... .......................... 11-7 including sysclock plls in a design............................................................................................ ....... 11-7 ipexpress usage................................................................................................................ ..................... 11-7 ehxpllb example projects ....................................................................................................... ............ 11-9 equations for generating input and output frequency ranges .................................................................... 1 1-10 f vco constraint .................................................................................................................... ................. 11-10 f pfd constraint .................................................................................................................... .................. 11-10 clock distribution in latticeecp/ec and latticexp .............................................................................. ......... 11-11 primary clock sources and distribution......................................................................................... ....... 11-11 clock net preferences .......................................................................................................... ......................... 11-12 primary-pure and primary-dcs................................................................................................... ......... 11-12 global primary clock and quadrant primary clock .............................................................................. 11 -12 secondary clock sources and distribution....................................................................................... .... 11-13 limitations on secondary clock availability.................................................................................... ...... 11-13 dynamic clock selection (dcs) .................................................................................................. .................. 11-14 dcs waveforms .................................................................................................................. ................. 11-15 use of dcs with pll ............................................................................................................ ................ 11-17 other design considerations .................................................................................................... ..................... 11-17 jitter considerations .......................................................................................................... ................... 11-17 simulation limitations ......................................................................................................... .................. 11-17 pcb layout recommendations for vccpll and gndpll if separate pins are available ................. 11-18 dcs usage with verilog......................................................................................................... ............... 11-18 dcs usage with vhdl ............................................................................................................ ...................... 11-18 technical support assistance................................................................................................... ..................... 11-19 revision history ............................................................................................................... .............................. 11-19 appendix a. clock preferences .................................................................................................. ................... 11-20 asic........................................................................................................................... ........................... 11-20
table of contents lattice semiconductor latticeecp/ ec family data sheet 6 frequency...................................................................................................................... .................. 11-20 maxskew................ ................. ................ ................ ................ ............. ............. ............. .................... 11-20 multicycle ..................................................................................................................... .................. 11-20 period ......................................................................................................................... ....................... 11-20 prohibit ....................................................................................................................... ...................... 11-20 clock_to_out ................................................................................................................... .............. 11-20 input_setup .................................................................................................................... ................. 11-21 pll_phase_back......... ................ ................ ................ ................. ................ ............. .......... ............. 11-21 power estimation and management for latticeecp/ec and latticexp devices introduction ................................................................................................................... ................................... 12-1 power supply sequencing and hot socketing...................................................................................... ........... 12-1 power calculator hardware assumptions.......................................................................................... .............. 12-1 power calculator............................................................................................................... ............................... 12-1 power calculator equations..................................................................................................... ............... 12-2 starting the power calculator .................................................................................................. ............... 12-3 starting a power calculator project ............................................................................................ ............ 12-5 power calculator main window ................................................................................................... ........... 12-6 power calculator wizard........................................................................................................ ................. 12-8 power calculator creating a new project without the ncd file ....................................................... 12-13 power calculator ?creating a new project with th e ncd file ............................................................ 12-14 power calculator open existing project ....................................................................................... ..... 12-16 power calculator total power................................................................................................. ........... 12-17 activity factor................................................................................................................ ................................. 12-17 ambient and junction temperature and airflow ................................................................................... ......... 12-18 managing power consumption ..................................................................................................... ................. 12-18 power calculator assumptions ................................................................................................... ................... 12-19 revision history ............................................................................................................... .............................. 12-20 technical support assistance................................................................................................... ..................... 12-20 appendix a. power calculator project example ................................................................................... ......... 12-21 latticeecp/ec sysconfig usage guide introduction ................................................................................................................... ................................... 13-1 configuration pins............................................................................................................. ............................... 13-1 dedicated control pins ......................................................................................................... .................. 13-2 dual-purpose sysconfig pins.................................................................................................... .......... 13-3 ispjtag pins ................................................................................................................... ....................... 13-4 configuration and jtag pin physical description ................................................................................ .. 13-4 configuration modes ............................................................................................................ ............................ 13-5 configuration options .......................................................................................................... ................... 13-5 spi mode ....................................................................................................................... ......................... 13-6 multiple fpga, one spi flash................................................................................................... ............. 13-7 spix mode ...................................................................................................................... ........................ 13-8 master serial mode ............................................................................................................. .................... 13-9 slave serial mode .............................................................................................................. ................... 13-10 master parallel mode ........................................................................................................... ................. 13-10 slave parallel mode ............................................................................................................ .................. 13-11 ispjtag mode ................................................................................................................... ................... 13-12 configuration flow ............................................................................................................. ............................ 13-13 clearing the configuration memory .............................................................................................. ........ 13-13 loading the configuration memory ............................................................................................... ........ 13-14 wake up the device ............................................................................................................. ................ 13-14 read back...................................................................................................................... ................................ 13-15 read sequence .................................................................................................................. .................. 13-15 software control ............................................................................................................... ............................. 13-15 persistent ..................................................................................................................... ......................... 13-16
table of contents lattice semiconductor latticeecp/ ec family data sheet 7 configuration mode............................................................................................................. .................. 13-16 done open drain ................................................................................................................ ................ 13-16 done external.................................................................................................................. .................... 13-17 master clock selection ......................................................................................................... ................ 13-17 security ....................................................................................................................... .......................... 13-17 wake-up sequence............................................................................................................... ................ 13-17 wake-up clock selection ........................................................................................................ .............. 13-17 bit stream compression ......................................................................................................... .............. 13-18 spi compatible spi flash vendors ............................................................................................... ................ 13-18 technical support assistance................................................................................................... ..................... 13-18 lattice isptracy usage guide introduction ................................................................................................................... ................................... 14-1 isptracy ip core features ...................................................................................................... ...................... 14-1 isptracy ip module generator ................................................................................................... ................... 14-1 isptracy core generator ........................................................................................................ ...................... 14-2 isptracy core linker........................................................................................................... .......................... 14-4 isptracy ispla program......................................................................................................... ....................... 14-6 conclusion ..................................................................................................................... .................................. 14-9 references..................................................................................................................... .................................. 14-9 technical support assistance................................................................................................... ....................... 14-9 latticeecp-dsp sysdsp usage guide introduction ................................................................................................................... ................................... 15-1 sysdsp block hardware .......................................................................................................... ........................ 15-1 overview ....................................................................................................................... .......................... 15-1 sysdsp block software .......................................................................................................... ......................... 15-2 overview ....................................................................................................................... .......................... 15-2 targeting the sysdsp block using ipexpress ..................................................................................... ... 15-2 targeting the sysdsp block by inference............... ......................................................................... ....... 15-7 targeting the sysdsp block using simulink ...................................................................................... ..... 15-9 targeting the sysdsp block by instan tiating primitives........................................................................ 1 5-10 sysdsp blocks in the report file ............................................................................................... ................... 15-10 map report file................................................................................................................ .................... 15-11 post par report file ........................................................................................................... ................. 15-11 technical support assistance................................................................................................... ..................... 15-11 appendix a. dsp block primitives ............................................................................................... .................. 15-12 mult36x36 primitive ............................................................................................................ ............... 15-12 mult18x18 primitive ............................................................................................................ ............... 15-12 mult18x18mac primitive ......................................................................................................... .......... 15-13 mult18x18addsub primitive ...................................................................................................... ...... 15-14 mult18x18addsubsum primitive ................................................................................................... .15-15 mult9x9 primitive .............................................................................................................. ................. 15-16 mult9x9mac primitive ........................................................................................................... ............ 15-17 mult9x9addsub primitive ........................................................................................................ ........ 15-18 mult9x9addsubsum primitive ..................................................................................................... ... 15-19 hdl synthesis coding guidelines for lattice semiconductor fpgas introduction ................................................................................................................... ................................... 16-1 general coding styles for fpga ................................................................................................. .................... 16-1 hierarchical coding............................................................................................................ ..................... 16-1 design partitioning ............................................................................................................ ...................... 16-2 state encoding methodologies for state machines ................................................................................ 16-3 coding styles for fsm .......................................................................................................... .................. 16-5 using pipelines in the designs................................................................................................. ............... 16-6 comparing if statement and case statement ...................................................................................... .16-7 avoiding non-intentional latches............................................................................................... ............. 16-8
table of contents lattice semiconductor latticeecp/ ec family data sheet 8 hdl design with lattice semiconductor fpga devices ............................................................................. .... 16-8 lattice semiconductor fpga synthesis library ................................................................................... .. 16-8 implementing multiplexers ...................................................................................................... .............. 16-10 clock dividers ................................................................................................................. ...................... 16-10 register control signals ....................................................................................................... ................ 16-12 use pic features............................................................................................................... ................... 16-14 implementation of memories..................................................................................................... ............ 16-16 preventing logic replication and limited fanout................................................................................ .16-16 use isplever project navigator results for device utilization and performance ............. ............. .... 16-17 technical support assistance................................................................................................... ..................... 16-17 lattice semiconductor design floorplanning introduction ................................................................................................................... ................................... 17-1 supported architectures........................................................................................................ ........................... 17-1 related documentation.......................................................................................................... .......................... 17-1 floorplanning definition ....................................................................................................... ............................ 17-1 complex fpga design management ................................................................................................. ............. 17-1 floorplanning design flow...................................................................................................... ......................... 17-2 when to floorplan.............................................................................................................. .............................. 17-2 floorplan to improve design performance ........................................................................................ .............. 17-3 floorplan to preserve module performance ....................................................................................... ............. 17-3 floorplan for design reuse ..................................................................................................... ........................ 17-3 how to floorplan a design...................................................................................................... ......................... 17-4 design performance enhancement strategies ...................................................................................... .17-4 design floorplanning methodologies............................................................................................. ......... 17-4 when to use pgroup vs. ugroup .................................................................................................. ... 17-4 floorplanner gui usage ......................................................................................................... ................ 17-6 special floorplanning considerations........................................................................................... ................... 17-7 embedded block ram placement ................................................................................................... ....... 17-7 i/o grouping................................................................................................................... ......................... 17-7 large module grouping .......................................................................................................... ................ 17-7 carry chains and bus grouping .................................................................................................. ........... 17-7 slics in groups................................................................................................................ ...................... 17-7 summary........................................................................................................................ .................................. 17-7 technical support assistance................................................................................................... ....................... 17-8 lattice semiconductor fpga successful place and route introduction ................................................................................................................... ................................... 18-1 isplever place and route software (par) ........................................................................................ ........... 18-1 placement ...................................................................................................................... ......................... 18-1 routing........................................................................................................................ ............................ 18-1 timing driven par process...................................................................................................... .............. 18-2 general strategy guidelines .................................................................................................... ........................ 18-2 typical design preferences ..................................................................................................... ............... 18-2 proper preferences ............................................................................................................. .................... 18-3 translating board requirements into fpga preferences ...................................................................... 18-4 analyzing timing reports ....................................................................................................... ......................... 18-6 example 1. multicycle between two different clocks ............................................................................ 1 8-6 example 2. clock_to_out with pll feedback................................................................................. 18-8 isplever controlled place and route............................................................................................ .............. 18-10 running multiple routing passes ................................................................................................ ......... 18-10 using multiple placement iterations (cost tables) .............................................................................. .18-11 clock boosting ................................................................................................................. ..................... 18-12 guided map and par ............................................................................................................. ....................... 18-14 notes on guided mapping ........................................................................................................ ............ 18-15 notes on guided par............................................................................................................ ............... 18-15
table of contents lattice semiconductor latticeecp/ ec family data sheet 9 conclusion ..................................................................................................................... ................................ 18-15 technical support assistance................................................................................................... ..................... 18-16 board timing guidelines for the ddr sdram controller ip core introduction ................................................................................................................... ................................... 19-1 read operation................................................................................................................. ............................... 19-2 set-up time calculation for the data input (max. case) ........................................................................ 1 9-3 hold time calculation for the data input (min. case)........................................................................... .. 19-3 write operation ................................................................................................................ ................................ 19-4 write set-up ................................................................................................................... ......................... 19-4 write hold ..................................................................................................................... .......................... 19-5 address and command signals.................................................................................................... ................... 19-5 set-up calculation............................................................................................................. ...................... 19-6 hold calculation ............................................................................................................... ....................... 19-7 board design guidelines ........................................................................................................ ......................... 19-7 technical support assistance................................................................................................... ....................... 19-8 appendix a. example extractions of delays from timing reports .................................................................. 19-9 pcb layout recommendations for bga packages introduction ................................................................................................................... ................................... 20-1 advantages and disadvantages of bga packaging .................................................................................. ...... 20-1 pcb layout ..................................................................................................................... ................................. 20-2 plated through hole (via) placement............................................................................................ .................. 20-2 bga board layout recommendations ............................................................................................... ............. 20-3 bga package types.............................................................................................................. .......................... 20-3 further information............................................................................................................ ............................... 20-3 technical support assistance................................................................................................... ....................... 20-3 revision history ............................................................................................................... ................................ 20-3 spi serial flash programming using ispjtag on latticeecp/ec fpgas introduction ................................................................................................................... ................................... 21-1 related documents.............................................................................................................. ............................ 21-1 hardware and software requirements ............................................................................................. ............... 21-1 spi/spix differences ........................................................................................................... ............................ 21-1 spi serial flash sizing........................................................................................................ .................... 21-2 hardware....................................................................................................................... ................................... 21-2 spi serial flash interface ..................................................................................................... .................. 21-3 ispjtag interface .............................................................................................................. ..................... 21-3 schematic ...................................................................................................................... ......................... 21-5 software ....................................................................................................................... .................................... 21-6 programming procedure .......................................................................................................... ............... 21-7 including the spi interface in the fpga design ................................................................................. ........... 21-14 sample code .................................................................................................................... .................... 21-14 locking the pins............................................................................................................... .............................. 21-16 design notes................................................................................................................... ............................... 21-18 conclusion ..................................................................................................................... ................................ 21-19 technical support assistance................................................................................................... ..................... 21-19 section iii. latticeecp/ec fa mily handbook revi sion history revision history ............................................................................................................... ................................ 22-1
section i. latticeecp /ec family data sheet ds1000 version 02.7, february 2008
www.latticesemi.com 1-1 introduction_01.3 may 2005 data sheet ?2005 lattice semiconductor corp. all lattice trademarks, registered trademarks, patents, and disclaimers are as listed at www .latticesemi.com/legal. all other brand or product names are trademarks or registered trademarks of their respective holders. the specifications and information herein are subject to change without notice. features ? extensive density and package options 1.5k to 32.8k lut4s ?5 to 496 i/os density migration supported ? sysdsp block (latticeecp versions) ?igh performance multiply and accumulate ? to 8 blocks  4 to 8 36x36 multipliers or ?6 to 32 18x18 multipliers or  32 to 64 9x9 multipliers ? embedded and distributed memory ?8 kbits to 498 kbits sysmem embedded block ram (ebr) ?p to 131 kbits distributed ram flexible memory resources:  distributed and block memory ? flexible i/o buffer ?rogrammable sysi/o buffer supports wide range of interfaces:  lv c m o s 3 . 3 / 2 . 5 / 1 . 8 / 1 . 5 / 1 . 2  lv t t l  sstl 3/2 class i, ii, sstl18 class i  hstl 18 class i, ii, iii, hstl15 class i, iii  pci  lv d s, b u s - lv d s, lv p e c l , r s d s ? dedicated ddr memory support implements interface up to ddr400 (200mhz) ? sysclock plls ?p to four analog plls per device clock multiply, divide and phase shifting ? system level support ieee standard 1149.1 boundary scan, plus  isptracy internal logic analyzer capability ?pi boot flash interface 1.2v power supply ? low cost fpga ?eatures optimized for mainstream applications low cost tqfp and pqfp packaging table 1-1. latticeecp/ec family selection guide device lfec1 lfec3 lfec6/ lfecp6 lfec10/ lfecp10 lfec15/ lfecp15 lfec20/ lfecp20 lfec33/ lfecp33 pfu/pff rows 12 16 24 32 40 44 64 pfu/pff columns 16 24 32 40 48 56 64 pfus/pffs 192 384 768 1280 1920 2464 4096 luts (k) 1.5 3.1 6.1 10.2 15.4 19.7 32.8 distributed ram (kbits) 6 12 25 41 61 79 131 ebr sram (kbits) 18 55 92 276 350 424 498 ebr sram blocks 2 6 10 30 38 46 54 sysdsp blocks 1 4 5 6 7 8 18x18 multipliers 1 1620242832 v cc voltage (v) 1.2 1.2 1.2 1.2 1.2 1.2 1.2 number of plls 2 2 2 4 4 4 4 packages and i/o combinations: 100-pin tqfp (14 x 14 mm) 67 67 144-pin tqfp (20 x 20 mm) 97 97 97 208-pin pqfp (28 x 28 mm) 112 145 147 147 256-ball fpbga (17 x 17 mm) 160 195 195 195 484-ball fpbga (23 x 23 mm) 224 288 352 360 360 672-ball fpbga (27 x 27 mm) 400 496 1. latticeecp devices only. latticeecp/ec family data sheet introduction
1-2 introduction lattice semiconductor latticeecp/ ec family data sheet introduction the latticeecp/ec family of fpga devices is optimized to deliver mainstream fpga features at low cost. for maximum performance and value, the latticeecp (ec onomy p lus) fpga concept combines an efficient fpga fabric with high-speed dedicated functions. lattices firs t family to implement this approach is the latticeecp- dsp (ec onomy p lus dsp ) family, providing dedicated high-performance dsp blocks on-chip. the latticeec (ec onomy) family supports all the general purpose features of latticeecp devices without dedicated function blocks to achieve lower cost solutions. the latticeecp/ec fpga fabric, which was designed from the ou tset with low cost in mind, contains all the critical fpga elements: lut-based logic, distributed and embedded memory, plls and support for mainstream i/os. dedicated ddr memory interface logic is also included to support this memory that is becoming increasingly prev- alent in cost-sensitive applications. the isplever design tool suite from lattice allows large comp lex designs to be efficiently implemented using the latticeecp/ec fpga family. synthesis library support for latticeecp/ec is available for popular logic synthesis tools. the isplever tool uses the synthesis tool output along with the constraints from its floor planning tools to place and route the design in the latticeecp/ec device. the isplever tool extracts the timing from the routing and back-annotates it into the design for timing verification. lattice provides many pre-designed ip (intellectual property) isplevercore modules for the latticeecp/ec family. by using these ips as standardized blocks, designer s are free to concentrate on the unique aspects of their design, increasing their productivity.
www.latticesemi.com 2-1 architecture_01.9 may 2007 data sheet ?2007 lattice semiconductor corp. all lattice trademarks, registered trademarks, patents, and disclaimers are as listed at www .latticesemi.com/legal. all other brand or product names are trademarks or registered trademarks of their respective holders. the specifications and information herein are subject to change without notice. architecture overview the latticeecp-dsp and latticeec architectures contain an array of logic blocks surrounded by programmable i/ o cells (pic). interspersed between the rows of logic blocks are rows of sysmem embedded block ram (ebr), as shown in figures 2-1 and 2-2. in addition, latticeecp-dsp supports an additional row of dsp blocks, as shown in figure 2-2. there are two kinds of logic blocks, the programmable functional unit (pfu) and programmable functional unit without ram/rom (pff). the pfu contains the building blocks for logic, arithmetic, ram, rom and register func- tions. the pff block contains building blocks for logic, arithmetic and rom functions. both pfu and pff blocks are optimized for flexibility, allowing complex designs to be implemented quickly and ef ficiently. logic blocks are arranged in a two-dimensional array. only one type of block is used per row. the pfu blocks are used on the out- side rows. the rest of the core consists of rows of pff blocks interspersed with rows of pfu blocks. for every three rows of pff blocks there is a row of pfu blocks. each pic block encompasses two pios (pio pairs) with their respective sysi/o interfaces. pio pairs on the left and right edges of the device can be configured as lvds tr ansmit/receive pairs. sysmem ebrs are large dedicated fast memory blocks. they can be configured as ram or rom. the pfu, pff, pic and ebr blocks are arranged in a two-dimensional grid with rows and columns as shown in figure 2-1. the blocks are connected with many vertical and horizontal routing channel resources. the place and route software tool automatically allocates these routing resources. at the end of the rows containing the sysmem blocks ar e the sysclock phase locked loop (pll) blocks. these plls have multiply, divide and phase shifting capability; they are used to manage the ph ase relationship of the clocks. the latticeecp/ec architecture provides up to four plls per device. every device in the family has a jtag port with intern al logic analyzer (isptracy) capability. the sysconfig port which allows for serial or parallel device configuratio n. the latticeecp/ec devices use 1.2v as their core volt- age. latticeecp/ec family data sheet architecture
2-2 architecture lattice semiconductor latticeecp/ ec family data sheet figure 2-1. simplified block diag ram, latticeec device (top level) figure 2-2. simplified block diagra m, latticeecp-dsp device (top level) programmable i/o cell (pic) includes sysio interface sysconfig programming port (includes dedicated and dual use pins) programmable functional unit (pfu) sysclock pll pff (pfu without ram) jtag port sysmem embedded block ram (ebr) programmable i/o cell (pic) includes sysio interface sysconfig programming port (includes dedicated and dual use pins) programmable functional unit (pfu) sysdsp block sysclock pll pff (fast pfu without ram/rom) jtag port sysmem embedded block ram (ebr)
2-3 architecture lattice semiconductor latticeecp/ ec family data sheet pfu and pff blocks the core of the latticeecp/ec devices consists of pfu and pff blocks. the pfus can be programmed to perform logic, arithmetic, distributed ram and distributed rom functions. pff blocks can be programmed to perform logic, arithmetic and rom functions. except where necessary, the re mainder of the data sheet will use the term pfu to refer to both pfu and pff blocks. each pfu block consists of four interconnected slices, nu mbered 0-3 as shown in figure 2-3. all the interconnec- tions to and from pfu blocks are from routing. there are 53 inputs and 25 outputs associated with each pfu block. figure 2-3. pfu diagram slice each slice contains two lut4 lookup tables feeding tw o registers (programmed to be in ff or latch mode), and some associated logic that allows the luts to be combined to perform functions such as lut5, lut6, lut7 and lut8. there is control logic to perform set/reset functions (programmable as synchronous/asynchronous), clock select, chip-select and wider ram/rom functions. figure 2-4 shows an overview of the internal logic of the slice. the registers in the slice can be configured for positive/negative and edge/level clocks. there are 14 input signals: 13 signals from routing and one from the carry-chain (from adjacent slice or pfu). there are 7 outputs: 6 to routing and one to carry-chain (to adjacent pfu). table 2-1 lists the signals associated with each slice. slice 0 lut4 & carry lut4 & carry ff/ latch d ff/ latch d slice 1 lut4 & carry lut4 & carry slice 2 lut4 & carry lut4 & carry from routing to routing slice 3 lut4 & carry lut4 & carry ff/ latch d ff/ latch d ff/ latch d ff/ latch d ff/ latch d ff/ latch d
2-4 architecture lattice semiconductor latticeecp/ ec family data sheet figure 2-4. slice diagram table 2-1. slice signal descriptions function type signal names description input data signal a0, b0, c0, d0 inputs to lut4 input data signal a1, b1, c1, d1 inputs to lut4 input multi-purpose m0 multipurpose input input multi-purpose m1 multipurpose input input control signal ce clock enable input control signal lsr local set/reset input control signal clk system clock input inter-pfu signal fcin fast carry in 1 output data signals f0, f1 lut4 output register bypass signals output data signals q0, q1 register outputs output data signals ofx0 output of a lut5 mux output data signals ofx1 output of a lut6, lut7, lut8 2 mux depending on the slice output inter-pfu signal fco for the right most pfu the fast carry chain output 1 1. see figure 2-3 for connection details. 2. requires two pfus. lut4 & carry lut4 & carry slice a0 b0 c0 d0 ff/ latch ofx0 f0 q0 a1 b1 c1 d1 ci ci co co f sum ce clk lsr ff/ latch ofx1 f1 q1 f sum d d m1 to / from different slice / pfu to / from different slice / pfu lut expansion mux m0 ofx0 from routing to routing control signals selected and inverted per slice in routing interslice signals are not shown
2-5 architecture lattice semiconductor latticeecp/ ec family data sheet modes of operation each slice is capable of four modes of operation: logic, ripple, ram and rom. the slice in the pff is capable of all modes except ram. table 2-2 lists the modes and the ca pability of the slice blocks. table 2-2. slice modes logic mode: in this mode, the luts in each slice are configured as 4-input combinatorial lookup tables. a lut4 can have 16 possible input combinations. any logic function with four inputs can be generated by programming this lookup table. since there are two lut4s per slice, a lut5 can be constructed within one slice. larger lookup tables such as lut6, lut7 and lut8 can be constructed by concatenating other slices. ripple mode: ripple mode allows the efficient implementation of small arithmetic functions. in ripple mode, the fol- lowing functions can be implemented by each slice: ?ddition 2-bit ?ubtraction 2-bit ?dd/subtract 2-bit using dynamic control ?p counter 2-bit ?own counter 2-bit ?ipple mode multiplier building block ?omparator functions of a and b inputs -a greater-than-or-equal-to b -a not-equal-to b -a less-than-or-equal-to b ripple mode includes an optional configuration that perfor ms arithmetic using fast carry chain methods. in this configuration (also referred to as ccu2 mode) two additional signals, carry generate and carry propagate, are generated on a per slice basis to allow fast arithmetic functions to be constructed by concatenating slices. ram mode: in this mode, distributed ram can be construc ted using each lut block as a 16x1-bit memory. through the combination of luts and slices, a variety of different memories can be constructed. the lattice design tools support the creation of a variety of different size memories. where appropriate, the soft- ware will construct these using distribute d memory primitives that represent th e capabilities of the pfu. table 2-3 shows the number of slices required to implement different distributed ram primitives. figure 2-5 shows the dis- tributed memory primitive block diagrams. dual port memories involve the pairing of two slices, one slice functions as the read-write port. the other companion slice supports the read-only port. for more information about using ram in latticeecp/ec devices, please see the list of te chnical documentation at the end of this data sheet. table 2-3. number of slices required for implementing distributed ram logic ripple ram rom pfu slice lut 4x2 or lut 5x1 2-bit arithmetic unit spr16x2 rom16x1 x 2 pff slice lut 4x2 or lut 5x1 2-bit arithmetic unit n/a rom16x1 x 2 spr16x2 dpr16x2 number of slices 1 2 note: spr = single port ram, dpr = dual port ram
2-6 architecture lattice semiconductor latticeecp/ ec family data sheet figure 2-5. distributed memory primitives rom mode: the rom mode uses the same principal as the ram modes, but without the write port. pre-loading is accomplished through the programming interface during configuration. pfu modes of operation slices can be combined within a pfu to form larger functions. table 2-4 tabulates these modes and documents the functionality possible at the pfu level. table 2-4. pfu modes of operation logic ripple ram 1 rom lut 4x8 or mux 2x1 x 8 2-bit add x 4 spr16x2 x 4 dpr16x2 x 2 rom16x1 x 8 lut 5x4 or mux 4x1 x 4 2-bit sub x 4 spr16x4 x 2 dpr16x4 x 1 rom16x2 x 4 lut 6x 2 or mux 8x1 x 2 2-bit counter x 4 spr16x8 x 1 rom16x4 x 2 lut 7x1 or mux 16x1 x 1 2-bit comp x 4 rom16x8 x 1 1. these modes are not available in pff blocks do1 do0 di0 di1 ad0 ad1 ad2 ad3 wre ck do0 ad0 ad1 ad2 ad3 dpr16x2 spr16x2 rom16x1 rdo1 rdo0 di0 di1 wck wre wdo1 wdo0 wad0 wad1 wad2 wad3 rad0 rad1 rad2 rad3
2-7 architecture lattice semiconductor latticeecp/ ec family data sheet routing there are many resources provided in the latticeecp/ec devices to route signals individually or as busses with related control signals. the routing resources consist of switching circuitry, buffers and metal interconnect (routing) segments. the inter-pfu connections are made with x1 (spans two pfu), x2 (spans three pfu) and x6 (spans seven pfu). the x1 and x2 connections provide fast and efficient connections in horizontal and vertical directions. the x2 and x6 resources are buffered, the routing of both short and long connections between pfus. the isplever design tool suite takes the output of the synthesis tool and places and routes the design. generally, the place and route tool is completely automatic, although an interactive routing editor is available to optimize the design. clock distribution network the clock inputs are selected from external i/o, the sy sclock plls or routing. these clock inputs are fed through the chip via a clock distribution system. primary clock sources latticeecp/ec devices derive clocks from three primary sources: pll outputs, dedicated clock inputs and routing. latticeecp/ec devices have two to four sysclock plls, located on the left and right sides of the device. there are four dedicated clock inputs, one on each side of the device. figure 2-6 shows the 20 primary clock sources. figure 2-6. primary clock sources from routing clock input from routing pll input clock input pll input pll input clock input pll input from routing clock input from routing pll pll pll pll 20 primary clock sources to quadrant clock selection note: smaller devices have two plls.
2-8 architecture lattice semiconductor latticeecp/ ec family data sheet secondary clock sources latticeecp/ec devices have four secondary clock resources per quadrant. the secondary clock branches are tapped at every pfu. these secondary clock networks can also be used for controls and high fanout data. these secondary clocks are derived from four clock input pads and 16 routing signals as shown in figure 2-7. figure 2-7. secondary clock sources clock routing the clock routing structure in latticeecp/ec devices cons ists of four primary clock lines and a secondary clock network per quadrant. the primary clocks are generated from muxs located in each quadrant. figure 2-8 shows this clock routing. the four secondary clocks are generated from muxs located in each quadrant as shown in figure 2-9. each slice derives its clock from the primary clock lines, secondary clock lines and routing as shown in figure 2-10. 20 secondary clock sources to quadrant clock selection from routing from routing from routing from routing from routing from routing from routing from routing from routing from routing from routing from routing from routing from routing from routing from routing
2-9 architecture lattice semiconductor latticeecp/ ec family data sheet figure 2-8. per quadrant primary clock selection figure 2-9. per quadrant secondary clock selection figure 2-10. slice clock selection sysclock phase loc ked loops (plls) the pll clock input, from pin or routing, feeds into an input clock divider. there are three sources of feedback sig- nal to the feedback divider: from clkop (pll internal), from clock net (clkop) or from a user clock (pin or logic). there is a pll_lock signal to indicate that vco has locked on to the input clock signal. figure 2-11 shows the sysclock pll diagram. the setup and hold times of the device can be improved by programming a delay in the feedback or input path of the pll which will advance or delay the ou tput clock with reference to the input clock. this delay can be either pro- 4 primary clocks (clk0, clk1, clk2, clk3) per quadrant 20 primary clock sources: 12 plls + 4 pios + 4 routing 1 dcs dcs 1. smaller devices have fewer pll related lines. 4 secondary clocks per quadrant 20 secondary clock feedlines : 4 clock input pads + 16 routing signals primary clock secondary clock routing clock to each slice gnd
2-10 architecture lattice semiconductor latticeecp/ ec family data sheet grammed during configuration or can be adjusted dynamically. in dynamic mode, the pll may lose lock after adjustment and not relock until the t lock parameter has been satisfied. additionally, the phase and duty cycle block allows the user to adjust the phase and duty cycle of the clkos output. the sysclock plls provide the ability to synthesize clock frequencies. each pll has four dividers associated with it: input clock divider, feedback divider, post scalar di vider and secondary clock divider. the input clock divider is used to divide the input clock signal, while the feedback di vider is used to multiply the input clock signal. the post scalar divider allows the vco to operate at higher frequencies than the clock output, thereby increasing the fre- quency range. the secondary divider is used to derive lower frequency outputs. figure 2-11. pll diagram figure 2-12 shows the available macros for the pll. table 2-5 provides signal description of the pll block. figure 2-12. pll primitive vco clkos clkok lock rst clkfb from clkop (pll internal), from clock net (clkop) or from a user clock (pin or logic) dynamic delay adjustment input clock divider (clki) feedback divider (clkfb) post scalar divider (clkop) phase/duty select secondary clock divider (clkok) delay adjust voltage controlled oscillator clki (from routing or external pin) clkop epllb clkop clki clkfb lock ehxpllb clkos clki clkfb clkok lock rst clkop ddaizr ddailag dda mode ddaidel[2:0] ddaozr ddaolag ddaodel[2:0]
2-11 architecture lattice semiconductor latticeecp/ ec family data sheet table 2-5. pll signal descriptions for more information about the pll, please see the list of technical documentation at the end of this data sheet. dynamic clock select (dcs) the dcs is a global clock buffer with smart multiplexer functions. it takes two independent input clock sources and outputs a clock signal without any glitches or runt pulses. this is achieved regardless of where the select signal is toggled. there are eight dcs blocks per device, located in pairs at the center of each side. figure 2-13 illustrates the dcs block macro. figure 2-13. dcs block primitive figure 2-14 shows timing waveforms of the default dcs operating mode. the dcs block can be programmed to other modes. for more information about the dcs, please see the list of technical documentation at the end of this data sheet. signal i/o description clki i clock input from external pin or routing clkfb ipll feedback input from clkop (pll internal), from clock net (clkop) or from a user clock (pin or logic) rst i ??to reset pll clkos o pll output clock to clock tr ee (phase shifted/duty cycle changed) clkop o pll output clock to clock tree (no phase shift) clkok o pll output to clock tree through secondary clock divider lock o 1?indicates pll lock to clki ddamode i dynamic delay enable. ?? pin contro l (dynamic), ?? fu se control (static) ddaizr i dynamic delay zero. ?? delay = 0, ?? delay = on ddailag i dynamic delay lag/le ad. ?? lead, ?? lag ddaidel[2:0] i dynamic delay input ddaozr o dynamic delay zero output ddaolag o dynamic delay lag/lead output ddaodel[2:0] o dynamic delay output dcs clk0 dcsout clk1 sel
2-12 architecture lattice semiconductor latticeecp/ ec family data sheet figure 2-14. dcs waveforms sysmem memory the latticeecp/ec devices contain a number of sysmem embedded block ram (ebr). the ebr consists of a 9- kbit ram, with dedicated input and output registers. sysmem memory block the sysmem block can implement single port, dual port or pseudo dual port memories. each block can be used in a variety of depths and widths as shown in table 2-6. table 2-6. sysmem block configurations bus size matching all of the multi-port memory modes support different widths on each of the ports. the ram bits are mapped lsb word 0 to msb word 0, lsb word 1 to msb word 1 and so on. although the word size and number of words for each port varies, this mapping scheme applies to each port. ram initialization and rom operation if desired, the contents of the ram can be pre-loaded duri ng device configuration. by preloading the ram block during the chip configuration cycle and disabling the write controls, the sysmem block can also be utilized as a rom. memory mode configurations single port 8,192 x 1 4,096 x 2 2,048 x 4 1,024 x 9 512 x 18 256 x 36 tr u e d u a l po r t 8,192 x 1 4,096 x 2 2,048 x 4 1,024 x 9 512 x 18 pseudo dual port 8,192 x 1 4,096 x 2 2,048 x 4 1,024 x 9 512 x 18 256 x 36 clk0 sel dcsout clk1
2-13 architecture lattice semiconductor latticeecp/ ec family data sheet memory cascading larger and deeper blocks of ram can be created using ebr sysmem blocks. typically, the lattice design tools cascade memory transparently, bas ed on specific design inputs. single, dual and pseudo-dual port modes figure 2-15 shows the four basic memory configuratio ns and their input/output nam es. in all the sysmem ram modes the input data and address for the ports are registered at the input of the memory array. the output data of the memory is optionally registered at the output. figure 2-15. sysmem ebr primitives the ebr memory supports three forms of write behavior for single port or dual port operation: 1. normal data on the output appears onl y during read cycle. during a writ e cycle, the data (at the current address) does not appear on the output. this mode is supported for all data widths. 2. write through a copy of the input data appears at the out put of the same port during a write cycle. this mode is supported for all data widths. 3. read-before-write when new data is being written, the old content of the address appears at the output. this mode is supported for x9, x18 and x36 data widths. memory core reset the memory array in the ebr utilizes la tches at the a and b out put ports. these latches can be reset asynchro- nously or synchronously. rsta and rstb are local signal s, which reset the output latches associated with port a and port b, respectively. the global reset (gsrn) signal resets both ports. the output data latches and associ- ated resets for both ports are as shown in figure 2-16. ebr ad[12:0] di[35:0] clk ce rst we cs[2:0] do[35:0] single port ram ebr true dual port ram pseudo-dual port ram rom ad[12:0] clk ce do[35:0] rst cs[2:0] ebr ebr ada[12:0] dia[17:0] clka cea rsta wea csa[2:0] doa[17:0] adb[12:0] dib[17:0] clkb ceb rstb web csb[2:0] dob[17:0] adw[12:0] di[35:0] clkw cew adr[12:0] do[35:0] cer clkr we rst cs[2:0]
2-14 architecture lattice semiconductor latticeecp/ ec family data sheet figure 2-16. memory core reset for further information about sysmem ebr block, please see the the list of technical documentation at the end of this data sheet. ebr asynchronous reset ebr asynchronous reset or gsr (if used) can only be applied if all clock enables are low for a clock cycle before the reset is applied and released a clock cycle after the reset is released, as shown in figure 2-17. the gsr input to the ebr is always asynchronous. figure 2-17. ebr asynchronous reset (including gsr) timing diagram if all clock enables remain enabled, the ebr asynchronous reset or gsr may only be applied and released after the ebr read and write clock inputs are in a steady state condition for a minimum of 1/f max (ebr clock). the reset release must adhere to the ebr synchronous reset setup time before the next active read or write clock edge. if an ebr is pre-loaded during configuration, the gsr input must be disabled or the release of the gsr during device wake up must occur before the release of the device i/os becomes active. these instructions apply to all ebr ram and rom implementations. note that there are no reset restrictions if the ebr syn chronous reset is used and the ebr gsr input is disabled. sysdsp block the latticeecp-dsp family provides a sysdsp block, making it ideally suited for low co st, high performance digital signal processing (dsp) applications. typical functions us ed in these applications are finite impulse response (fir) filters; fast fourier transforms (fft) functions, correlators, reed-solomon/turbo/convolution encoders and q set d l clr output data latches memory core port a[17:0] q set d port b[17:0] rstb gsrn programmable disable rsta l clr reset clock clock enable
2-15 architecture lattice semiconductor latticeecp/ ec family data sheet decoders. these complex signal processing functions use si milar building blocks such as multiply-adders and mul- tiply-accumulators. sysdsp block approach compared to general dsp conventional general-purpose dsp chips typically contain one to four (multiply and accumulate) mac units with fixed data-width multipliers; this leads to limited parallelism and limited throughput. their throughput is increased by higher clock speeds. the latticeecp, on the other hand, has many dsp blocks that support different data-widths. this allows the designer to use highly parallel implementations of dsp functions. the designer can optimize the dsp performance vs. area by choosing an appropriate level of parallelism. figure 2-18 compares the serial and the parallel implementations. figure 2-18. comparison of general dsp and latticeecp-dsp approaches sysdsp block capabilities the sysdsp block in the latticeecp-dsp family supports four functional elements in three 9, 18 and 36 data path widths. the user selects a function element for a dsp block and then selects the width and type (signed/unsigned) of its operands. the operands in the latticeecp-dsp fa mily sysdsp blocks can be either signed or unsigned but not mixed within a function element. similarly, the operand widths cannot be mixed within a block. the resources in each sysdsp block can be configured to support the following four elements: ?ult (multiply) ?ac (multiply, accumulate) ?ultadd (multiply, addition/subtraction) ?ultaddsum (multiply, additi on/subtraction, accumulate) the number of elements available in each block depends on the width selected from the three available options x9, x18, and x36. a number of these elements are concatenat ed for highly parallel implementations of dsp functions. ta bl e 2 - 1 s h o w s t h e c a p a b i l i t i e s o f t h e bl o ck . multiplier 0 operand a operand b operand a operand b operand a operand b multiplier 1 multiplier (k-1) accumulator output m/k loops single multiplier x xx x operand a accumulator operand b m loops function implemented in general purpose dsp function implemented in latticeecp
2-16 architecture lattice semiconductor latticeecp/ ec family data sheet table 2-7. maximum number of elements in a block some options are available in four elements. the input regist er in all the elements can be directly loaded or can be loaded as shift registers from previous operand registers. in addition by selecting dynamic operation in the ?igned/unsigned?options the operands can be switched between signed and unsigned on every cycle. similarly by selecting dynamic operation in the add/sub option the accumulator can be switched between addition and subtraction on every cycle. mult sysdsp element this multiplier element implements a multiply with no addition or accumulator nodes. the two operands, a and b, are multiplied and the result is available at the output. the user can enable the input/output and pipeline registers. figure 2-19 shows the mult sysdsp element. figure 2-19. mult sysdsp element mac sysdsp element in this case the two operands, a and b, are multiplied and the result is added with the previous accumulated value. this accumulated value is available at the output. the user can enable the input and pipeline registers but the out- put register is always enabled. the output register is used to store the accumulated value. a registered overflow signal is also available. the overflow conditions are pr ovided later in this document. figure 2-20 shows the mac sysdsp element. width of multiply x9 x18 x36 mult 8 4 1 mac 2 2 multadd 4 2 multaddsum 2 1 multiplier x n m m n m n m n n m m+n m+n (default) clk (clk0,clk1,clk2,clk3) ce (ce0,ce1,ce2,ce3) rst(rst0,rst1,rst2,rst3) pipeline register input register multiplier multiplicand signed shift register a in shift register b in shift register a out shift register b out output input data register a input data register b output register to multiplier
2-17 architecture lattice semiconductor latticeecp/ ec family data sheet figure 2-20. mac sysdsp element multadd sysdsp element in this case, the operands a0 and b0 are multiplied and the result is added/subtracted with the result of the multi- plier operation of operands a1 and a2. the user can enable the input, output and pipeline registers. figure 2-21 shows the multadd sysdsp element. figure 2-21. multadd multiplier x n m m+n (default) m+n+16 bits (default) m+n+16 bits (default) input data register b input data register a m n n n m n n m overflow register output register accumulator multiplier multiplicand signedab shift register a in shift register b in shift register a out shift register b out output addn accumsload pipeline register clk (clk0,clk1,clk2,clk3) ce (ce0,ce1,ce2,ce3) rst(rst0,rst1,rst2,rst3) input register pipeline register input register pipeline register input register pipeline register to accumulator to accumulator to accumulator overflow signal multiplier multiplier add/sub pipe reg pipe reg n m m n m n m n n m m+n (default) m+n+1 (default) m+n+1 (default) m+n (default) x x n m m n m n n m multiplier b0 multiplicand a0 multiplier b1 multiplicand a1 signed shift register a in shift register b in shift register a out shift register b out output addn pipeline register clk (clk0,clk1,clk2,clk3) ce (ce0,ce1,ce2,ce3) rst(rst0,rst1,rst2,rst3) input register pipeline register input register pipeline register pipeline register input data register a input data register a input data register b input data register b output register to add/sub to add/sub
2-18 architecture lattice semiconductor latticeecp/ ec family data sheet multaddsum sysdsp element in this case, the operands a0 and b0 are multiplied and the result is added/subtracted with the result of the multi- plier operation of operands a1 and b1. additionally the operands a2 and b2 are multiplied and the result is added/ subtracted with the result of the multiplier operation of operands a3 and b3. the result of both addition/subtraction are added in a summation block. the user can enable the input, output and pipeline registers. figure 2-22 shows the multaddsum sysdsp element. figure 2-22. multaddsum clock, clock enable and reset resources global clock, clock enable and reset signals from routing are available to every dsp block. four clock, reset and clock enable signals are selected for the sysdsp block. from four clock sources (clk0, clk1, clk2, clk3) one clock is selected for each input register, pipeline register and output register. similarly clock enable (ce) and reset (rst) are selected from their four respective sources (ce0, ce1, ce2, ce3 and rst0, rst1, rst2, rst3) at each input register, pipeline register and output register. multiplier add/sub0 x n m m+n (default) m+n (default) m+n+1 m+n+2 m+n+2 m+n+1 m+n (default) m+n (default) m n m n m n n m x n n m n n m multiplier multiplier multiplier add/sub1 x n m m n m n m n n m x n m m n m n n m sum multiplier b0 multiplicand a0 multiplier b1 multiplicand a1 multiplier b2 multiplicand a2 multiplier b3 multiplicand a3 signed shift register b in output addn0 pipeline register clk (clk0,clk1,clk2,clk3) ce (ce0,ce1,ce2,ce3) rst(rst0,rst1,rst2,rst3) input register pipeline register input register to add/sub0 to add/sub0, add/sub1 pipeline register pipeline register input register to add/sub1 addn1 pipeline register pipeline register pipeline register shift register a in shift register b out shift register a out input data register a input data register a input data register a input data register a input data register b input data register b input data register b input data register b output register
2-19 architecture lattice semiconductor latticeecp/ ec family data sheet signed and unsigned with different widths the dsp block supports different widths of signed and unsigned multipliers besides x9, x18 and x36 widths. for unsigned operands, unused upper data bits should be f illed to create a valid x9, x1 8 or x36 operand. for signed twos complement operands, sign extension of the most significant bit should be performed until x9, x18 or x36 width is reached. table 2-8 provides an example of this. table 2-8. an example of sign extension overflow flag from mac the sysdsp block provides an overflow output to indicate that the accumulator has overflowed. when two unsigned numbers are added and the result is a smaller number then accumulator roll over is said to occur and overflow signal is indicated. when two positive numbers are added with a negative sum and when two negative numbers are added with a positive sum, then the accumulator roll-over is said to have occurred and an overflow signal is indicated. note when overflow occurs the overfl ow flag is present for only one cycle. by counting these overflow pulses in fpga logic, larger accumulators can be constructed. the conditions overflow signals for signed and unsigned operands are listed in figure 2-23. figure 2-23. accumulator overflow/underflow conditions number unsigned unsigned 9-bit unsigned 18-bit signed two? complement signed 9-bits twos complement signed 18-bits +5 0101 000000101 000000000000000101 0101 000000101 000000000000000101 -6 0110 000000110 000000000000000110 1010 111111010 111111111111111010 000000000 000000001 000000010 000000011 111111101 111111110 111111111 overflow signal is generated for one cycle when this boundary is crossed 0 +1 +2 +3 -3 -2 -1 unsigned operation signed operation 0101111111 0101111110 0101111101 0101111100 1010000010 1010000001 1010000000 255 254 253 252 254 255 256 000000000 000000001 000000010 000000011 111111101 111111110 111111111 carry signal is generated for one cycle when this boundary is crossed 0 1 2 3 509 510 511 0101111111 0101111110 0101111101 0101111100 1010000010 1010000001 1010000000 255 254 253 252 258 257 256
2-20 architecture lattice semiconductor latticeecp/ ec family data sheet ipexpress the user can access the s ysdsp block via the ipexpress configurat ion tool, included with the isplever design tool suite. ipexpress has options to configure each dsp module (or group of modules) or through direct hdl instantiation. additionally lattice has partnered mathworks to support instantiation in the simulink tool, which is a graphical simulation environment. simulink works with ispl ever and dramatically shortens the dsp design cycle in lattice fpgas. optimized dsp functions lattice provides a library of optimized dsp ip functions. some of the ips planned for latticeecp dsp are: bit cor- relators, fast fourier transform, finite impulse response (fir) filter, reed-solomon encoder/ decoder, turbo encoder/decoders and convolutional encoder/decoder. please contact lattice to obtain the latest list of available dsp ips. resources available in the latticeecp family ta bl e 2 - 9 s h o w s t h e m a x i m u m n u m b e r o f m u l t i p l i e r s fo r e a c h m e m b e r o f t h e l a t t i c e e c p fa m i l y. ta bl e 2 - 1 0 s h o w s the maximum available ebr ram blocks in each of the la tticeecp family. ebr blocks, together with distributed ram can be used to store variables locally for the fast dsp operations. table 2-9. number of dsp blocks in latticeecp family table 2-10. embedded sram in latticeecp family dsp performance of t he latticeecp family ta bl e 2 - 1 1 l i s t s t h e m a x i m u m p e r fo r m a n c e i n m i l l i o n s o f m a c operations per second (mma c) for each member of the latticeecp family. table 2-11. dsp block performance of latticeecp family device dsp block 9x9 multiplier 18 x18 multiplier 36x36 multiplier lfecp6 4 32 16 4 lfecp10 5 40 20 5 lfecp15 6 48 24 6 lfecp20 7 56 28 7 lfecp33 8 64 32 8 device ebr sram block total ebr sram (kbits) lfecp6 10 92 lfecp10 30 276 lfecp15 38 350 lfecp20 46 424 lfecp33 54 498 device dsp block dsp performance mmac lfecp6 4 3680 lfecp10 5 4600 lfecp15 6 5520 lfecp20 7 6440 lfecp33 8 7360
2-21 architecture lattice semiconductor latticeecp/ ec family data sheet for further information about the sysdsp block, please see the list of technical information at the end of this data sheet. programmable i/o cells (pic) each pic contains two pios connected to their respective sysi/o buffers which are then connected to the pads as shown in figure 2-24. the pio block supplies the output data (do) and the tri-state control signal (to) to sysi/o buffer, and receives input from the buffer. figure 2-24. pic diagram two adjacent pios can be joined to provide a differential i/o pair (labeled as t and c) as shown in figure 2-25. the pad labels ??and c?distinguish the two pios. only the pio pairs on the left and right edges of the device can be configured as lvds transmit/receive pairs. one of every 16 pios contains a delay element to fac ilitate the generation of dqs signals. the dqs signal feeds the dqs bus which spans the set of 16 pios. figure 2-25 shows the assignment of dqs pins in each set of 16 pios. the exact dqs pins are shown in a dual function in the logic signal connections table at the end of this data sheet. additional detail is provided in the signal descriptions table at the end of this data sheet. the dqs signal from the bus is used to strobe the ddr data from the memory into input register blocks. this interface is designed for memories that support one dqs strobe per eight bits of data. pio b pada "t" padb "c" opos0 oneg0 opos1 oneg1 td inck indd inff ipos0 ipos1 clk ce lsr gsrn pio a sysio buffer dqs ddrclkpol iold0 iolt0 d0 ddrclk di ipos1 ipos0 inck indd inff d0 d1 td d1 output register block (2 flip flops) tristate register block (2 flip flops) ddrclk input register block (5 flip flops) clko clki ceo cei control muxes lsr gsr
2-22 architecture lattice semiconductor latticeecp/ ec family data sheet table 2-12. pio signal list figure 2-25. dqs routing pio the pio contains four blocks: an input register block, output register block, tristate register block and a control logic block. these blocks contain registers for both single data rate (sdr) and double data rate (ddr) operation along with the necessary clock and selection logic. programmable delay lines used to shift incoming clock and data sig- nals are also included in these blocks. name type description ce0, ce1 control from the core clock en ables for input and output block ffs. clk0, clk1 control from the core system clocks for input and output blocks. lsr control from the core local set/reset. gsrn control from routing global set/reset (active low). inck input to the core input to primary clock network or pll reference inputs. dqs input to pio dqs signal from logic (routing) to pio. indd input to the core unregistered data input to core. inff input to the core registered input on positive edge of the clock (clk0). ipos0, ipos1 input to the core ddrx registered inputs to the core. oneg0 control from the core output signal s from the core for sdr and ddr operation. opos0, control from the core output si gnals from the core for ddr operation opos1 oneg1 tristate control from the core signals to tristate register block for ddr operation. td tristate control from the core tristate signal from the core used in sdr operation. ddrclkpol control from clock polarity bus controls the polar ity of the clock (clk0) that feed the ddr input block. pio a pio b pada "t" padb "c" pio b pio a pio b pio a assigned dqs pin dqs sysio buffer lvds pair pada "t" padb "c" lvds pair pada "t" padb "c" lvds pair pio a pio b pada "t" padb "c" lvds pair pio a pio b pada "t" padb "c" lvds pair pio a pio b pada "t" padb "c" lvds pair pio a pio b pada "t" padb "c" lvds pair pio a pio b pada "t" padb "c" lvds pair delay
2-23 architecture lattice semiconductor latticeecp/ ec family data sheet input register block the input register block contains delay elements and register s that can be used to condition signals before they are passed to the device core. figure 2-26 shows the diagram of the input register block. input signals are fed from the sysi/o buffer to the input register block (as signal di). if desired the input signal can bypass the register and delay elements and be used directly as a combinatorial signal (indd), a clock (inck) and in selected blocks the input to the dqs delay block. if one of the bypass options is not chosen, the signal first passes through an optional delay block. this delay, if selected, reduces input-register hold-time requirement when using a global clock. the input block allows two modes of operation. in the single data rate (sdr) the data is registered, by one of the registers in the single data rate sync register block, with the system cloc k. in the ddr mode two registers are used to sample the data on the positive and negative edges of the dqs signal creating two data streams, d0 and d2. these two data streams are synchronized with the system cl ock before entering the co re. further discussion on this topic is in the ddr memory section of this data sheet. figure 2-27 shows the input register waveforms for ddr operation and figure 2-28 shows the design tool primi- tives. the sdr/sync registers have reset and clock enable available. the signal ddrclkpol controls the pola rity of the clock used in the synchr onization registers. it ensures ade- quate timing when data is transferred from the dqs to system clock domain. for further discussion on this topic, see the ddr memory section of this data sheet. figure 2-26. input register diagram d q d q d q d-type fixed delay to routing di (from sysio buffer) dqs delayed (from dqs bus) clk0 (from routing) ddrclkpol (from ddr polarity control bus) inck indd delay block ddr registers d-type d-type d q d q d-type /latch /latch d-type ipos0 ipos1 sdr & sync registers d0 d2 d1
2-24 architecture lattice semiconductor latticeecp/ ec family data sheet figure 2-27. input register ddr waveforms figure 2-28. inddrxb primitive output register block the output regist er block provides the ability to register signals from the core of the device before they are passed to the sysi/o buffers. the block contains a register for sdr operation that is combined with an additional latch for ddr operation. figure 2-29 shows the diagram of the output register block. in sdr mode, oneg0 feeds one of the flip-flops that then feeds the output. the flip-flop can be configured a d- type or latch. in ddr mode, oneg0 is fed into one regi ster on the positive edge of the clock and opos0 is latched. a multiplexer running off the same clock selects the correct register for feeding to the output (d0). figure 2-30 shows the design tool ddr primitives. the sdr output register has reset and clock enable available. the additional register for ddr operation does not have reset or clock enable available. abcde f bd di (in ddr mode) d0 d2 dqs a c dqs delayed iddrxb lsr qa d eclk qb ddrclkpol sclk ce
2-25 architecture lattice semiconductor latticeecp/ ec family data sheet figure 2-29. output register block figure 2-30. oddrxb primitive tristate register block the tristate register block prov ides the ability to register tr i-state control signals from t he core of the device before they are passed to the sysi/o buffers. the block contains a register for sdr operation and an additional latch for ddr operation. figure 2-31 shows the diagram of the tristate register block. in sdr mode, oneg1 feeds one of the flip-flops that then feeds the output. the flip-flop can be configured a d- type or latch. in ddr mode, oneg1 is fed into one regi ster on the positive edge of the clock and opos1 is latched. a multiplexer running off the same clock selects the correct register for feeding to the output (d0). d q d q d-type oneg0 from routing clk1 programmed control do latch le* *latch is transparent when input is low. opos0 outddn /latch 0 1 0 1 to sysio buffer oddrxb lsr q db clk da
2-26 architecture lattice semiconductor latticeecp/ ec family data sheet figure 2-31. tristate register block control logic block the control logic block allows the selection and modification of control signals for use in the pio block. a clock is selected from one of the clock signals provided from the general purpose routing and a dqs signal provided from the programmable dqs pin. the clock can optionally be inverted. the clock enable and local reset signals are selected from the routing and optionally inverted. the global tristate signal is passed through this block. ddr memory support implementing high performance ddr memory interfaces requir es dedicated ddr register structures in the input (for read operations) and in the output (for write operations). as indicated in the pio logic section, the latticeec devices provide this capability. in addi tion to these registers, th e latticeec devices contain two elements to simplify the design of input structures for read operations: the dqs delay block and polarity control logic. dll calibrated dqs delay block source synchronous interfaces generally require the input clock to be adjusted in order to correctly capture data at the input register. for most interfaces a pll is used for this adjustment. however in ddr memories the clock (referred to as dqs) is not free running so this approach cannot be used. the dqs delay block provides the required clock alignment for ddr memory interfaces. the dqs signal (selected pios only) feeds from the pad through a dqs delay element to a dedicated dqs routing resource. the dqs signal also feeds polarity control logic, which controls the polarity of the clock to the sync regis- ters in the input register blocks. figures 2-32 and 2-33 show how the dqs transition signals are routed to the pios. the temperature, voltage and process variations of the dqs delay block are compensated by a set of calibration (6-bit bus) signals from two dlls on opposite sides of t he device. each dll compensates dqs delays in its half of the device as shown in figure 2-33. the dll loop is co mpensated for temperature, voltage and process variations by the system clock and feedback loop. d le* q d q d-type oneg1 clk1 programmed control to latch *latch is transparent when input is low. opos1 outddn /latch 0 1 0 1 from routing to sysio buffer td
2-27 architecture lattice semiconductor latticeecp/ ec family data sheet figure 2-32. dqs local bus. figure 2-33. dll calibration bus and dqs/dqs transition distribution di clki cei pio gsr dqs input register block ( 5 flip flops) to sync. reg. dqs to ddr reg. dqs strobe pad ddr datain pad sysio buffer di sysio buffer pio dqsdel polarity control logic dqs calibration bus from dll delay control bus polarity control bus dqs bus dll dll polarity control bus dqs bus delay control bus
2-28 architecture lattice semiconductor latticeecp/ ec family data sheet polarity control logic in a typical ddr memory interface design, the phase relation between the incoming delayed dqs strobe and the internal system clock (during the read cycle) is unknown. the latticeecp/ec family contains dedicated circuits to transfer data between these domains. to prevent setup and hold violations at the do main transfer between dqs (delayed) and the system clock a clock polarity selector is used. this changes the edge on which the data is registered in the synchronizing registers in the input register block. this requires evaluation at the start of each read cycle for the correct clock polarity. prior to the read operation in ddr me mories dqs is in tristate (pulled by termination). the ddr memory device drives dqs low at the start of the preamble state. a dedicated circuit detects this transition. this signal is used to control the polarity of the clock to the synchronizing registers. sysi/o buffer each i/o is associated with a flexible buffer referred to as a sysi/o buffer. these buffers are arranged around the periphery of the device in eight groups referred to as banks. the sysi/o buffers allow users to implement the wide variety of standards that are found in todays systems including lvcmos, sstl, hstl, lvds and lvpecl. sysi/o buffer banks latticeecp/ec devices have eight sysi/o buffer banks; each is capable of supporting multiple i/o standards. each sysi/o bank has its own i/o supply voltage (v ccio ), and two voltage references v ref1 and v ref2 resources allow- ing each bank to be completely independent from each other. figure 2-34 shows the eight banks and their associ- ated supplies. in the latticeecp/ec devices, single-ended output buffer s and ratioed input buffers (lvttl, lvcmos, pci and pci- x) are powered using v ccio. lvttl, lvcmos33, lvcmos25 and lvcmos12 can also be set as fixed threshold input independent of v ccio. in addition to the bank v ccio supplies, the latticeecp/ec devices have a v cc core logic power supply, and a v ccaux supply that power all differential and referenced buffers. each bank can support up to two separate vref voltages, vref1 and vref2 that set the threshold for the refer- enced input buffers. in the latticeecp/ec devices, some d edicated i/o pins in a bank can be configured to be a reference voltage supply pin. each i/o is individually co nfigurable based on the banks supply and reference volt- ages.
2-29 architecture lattice semiconductor latticeecp/ ec family data sheet figure 2-34. latticeecp/ec banks latticeecp/ec devices contain two types of sysi/o buffer pairs. 1. top and bottom sysi/o buffer pairs (single-ended outputs only)  the sysi/o buffer pairs in the top and bottom banks of the device consist of two single-ended output drivers and two sets of single-ended input buffers (both ratioed and referenced). the referenced input buffer can also be configured as a differential input.   the two pads in the pair are described as ?rue?and c omp? where the true pad is associated with the positive side of the differential input buffer and the comp (complementary) pad is associated with the negative side of the differential input buffer.   only the i/os on the top and bottom banks have programmable pci clamps. these i/o banks also support hot socketing with idk less than 1ma. note that the pci clamp is enabled after v cc , v ccaux and v ccio are at valid operating levels and the device has been configured. 2. left and right sysi/o buffer pairs (differential and single-ended outputs)  the sysi/o buffer pairs in the left and right banks of the device consist of two single-ended output drivers, two sets of single-ended input buffers (both ratioed and referenced) and one differential output driver. the refer- enced input buffer can also be configured as a differenti al input. in these banks the two pads in the pair are described as ?rue?and ?omp? where the true pad is associated with the positive side of the differential i/o, and the comp (complementary) pad is associated with the negative side of the differential i/o.   only the left and right banks have lvds differential output drivers. see the i dk specification for i/o leakage cur- rent during power-up. v ref1(2) gnd bank 2 v ccio2 v ref2(2) v ref1(3) gnd bank 3 v ccio3 v ref2(3) v ref1(7) gnd top left right bottom bank 7 v ccio7 v ref2(7) v ref1(6) gnd bank 6 v ccio6 v ref2(6) v ref1(5) gnd bank 5 v ccio5 v ref2(5) v ref1(4) gnd bank 4 v ccio4 v ref2(4) v ref1(0) gnd bank 0 v ccio0 v ref2(0) v ref1(1) gnd bank 1 v ccio1 v ref2(1)
2-30 architecture lattice semiconductor latticeecp/ ec family data sheet typical i/o behavior during power-up the internal power-on-reset (por) signal is deactivated when v cc and v ccaux have reached satisfactory levels. after the por signal is deacti vated, the fpga core logic becomes active. it is the users resp onsibility to ensure that all other v ccio banks are active with valid input logic levels to properly control the output logic states of all the i/o banks that are critical to the app lication. for more information about cont rolling the output lo gic state with valid input logic levels during power-up in latticeecp/ec devices, see the list of technical documentation at the end of this data sheet. the v cc and v ccaux supply the power to the fpga core fabric, whereas the v ccio supplies power to the i/o buf- fers. in order to simplify system design while providing consistent and predictable i/o behavior, it is recommended that the i/o buffers be powered-up prior to the fpga core fabric. v ccio supplies should be powered-up before or together with the v cc and v ccaux supplies. supported standards the latticeecp/ec sysi/o buffer supports both single-ended and differential standards. single-ended standards can be further subdivided into lvcmos, lvttl and other standards. the buffers support the lvttl, lvcmos 1.2, 1.5, 1.8, 2.5 and 3.3v standards. in the lvcmos and lvttl modes, the buffer has individually configurable options for drive strength, bus maintenance (weak pull-up, weak pull-down, or a bus-keeper latch) and open drain. other single-ended standards supported include sstl and hstl. differential standards supported include lvds, blvds, lvpecl, rsds, differential sstl and differential hstl. tables 2-13 and 2- 14 show the i/o standards (together with their supply and reference voltages) supported by the latticeecp/ec devices. for further informa- tion about utilizing the sysi/o buffer to support a variety of standards please see the the list of technical information at the end of this data sheet. table 2-13. suppor ted input standards input standard v ref (nom.) v ccio 1 (nom.) single ended interfaces lv t t l lv c m o s 3 3 2 lv c m o s 2 5 2 lv c m o s 1 8 1 . 8 lv c m o s 1 5 1 . 5 lv c m o s 1 2 2 pci 3.3 hstl18 class i, ii 0.9 hstl18 class iii 1.08 hstl15 class i 0.75 hstl15 class iii 0.9 sstl3 class i, ii 1.5 sstl2 class i, ii 1.25 sstl18 class i 0.9 differential interfaces differential sstl18 class i differential sstl2 class i, ii differential sstl3 class i, ii differential hstl15 class i, iii differential hstl18 class i, ii, iii lv d s, lv p e c l , b lv d s, r s d s 1. when not specified v ccio can be set anywhere in the valid operating range. 2. jtag inputs do not have a fixed threshold option and always follow v ccj.
2-31 architecture lattice semiconductor latticeecp/ ec family data sheet table 2-14. suppor ted output standards hot socketing the latticeecp/ec devices have been carefully designed to ensure predictable behavior during power-up and power-down. power supplies can be sequenced in any order. during power up and power-down sequences, the i/os remain in tristate until the power supply voltage is high enough to ensure reliable operation. in addition, leakage into i/o pins is controlled within specified limits, this allows for easy integration with the rest of the sys- tem. these capabilities make the latticeecp/ec ideal for many multiple power supply and hot-swap applica- tions. configuration and testing the following section describes the configuration a nd testing features of the latticeecp/ec devices. ieee 1149.1-compliant b oundary scan testability all latticeecp/ec devices have boundary scan cells that are accessed through an ieee 1149.1 compliant test access port (tap). this allows functional testing of the ci rcuit board, on which the device is mounted, through a serial scan path that can access all critical logic nodes. in ternal registers are linked internally, allowing test data to output standard drive v ccio (nom.) single-ended interfaces lv t t l 4 m a , 8 m a , 1 2 m a , 1 6 m a , 2 0 m a 3 . 3 lv c m o s 3 3 4 m a , 8 m a , 1 2 m a 1 6 m a , 2 0 m a 3 . 3 lv c m o s 2 5 4 m a , 8 m a , 1 2 m a , 1 6 m a , 2 0 m a 2 . 5 lv c m o s 1 8 4 m a , 8 m a , 1 2 m a , 1 6 m a 1 . 8 lv c m o s 1 5 4 m a , 8 m a 1 . 5 lv c m o s 1 2 2 m a , 6 m a 1 . 2 lv c m o s 3 3 , o p e n d r a i n 4 m a , 8 m a , 1 2 m a 1 6 m a , 2 0 m a lv c m o s 2 5 , o p e n d r a i n 4 m a , 8 m a , 1 2 m a 1 6 m a , 2 0 m a lv c m o s 1 8 , o p e n d r a i n 4 m a , 8 m a , 1 2 m a 1 6 m a lv c m o s 1 5 , o p e n d r a i n 4 m a , 8 m a lv c m o s 1 2 , o p e n d r a i n 2 m a , 6 m a pci33 n/a 3.3 hstl18 class i, ii, iii n/a 1.8 hstl15 class i, iii n/a 1.5 sstl3 class i, ii n/a 3.3 sstl2 class i, ii n/a 2.5 sstl18 class i n/a 1.8 differential interfaces differential sstl3, class i, ii n/a 3.3 differential sstl2, class i, ii n/a 2.5 differential sstl18, class i n/a 1.8 differential hstl18, class i, ii, iii n/a 1.8 differential hstl15, class i, iii n/a 1.5 lv d s n / a 2 . 5 blvds 1 n/a 2.5 lv p e c l 1 n/a 3.3 rsds 1 n/a 2.5 1. emulated with external resistors.
2-32 architecture lattice semiconductor latticeecp/ ec family data sheet be shifted in and loaded directly onto test nodes, or test data to be captured and shifted out for verification. the test access port consists of dedicated i/os: tdi, tdo, tck and tms. the test access port has its own supply voltage v ccj and can operate with lvcmos3.3, 2.5, 1.8, 1.5 and 1.2 standards. for more details on boundary scan test, please see information regarding additional technical documentation at the end of this data sheet. device configuration all latticeecp/ec devices contain two possible ports that can be used for device configuration. the test access port (tap), which supports bit-wide configuration, and the sysconfig port that supports both byte-wide and serial configuration. the tap supports both the ieee std. 1149.1 boundary scan specification and the i eee std. 1532 in-system con- figuration specification. the sysconfig port is a 20-pin interface with six of the i/os used as dedicated pins and the rest being dual-use pins (please refer to tn1053 for mo re information about using the dual-use pins as general purpose i/o). there are four configuration options for latticeecp/ec devices: 1. industry standard spi memories. 2. industry standard byte wide flash and ispmach 4000 for control/addressing. 3. configuration from system microprocess or via the configuration bus or tap. 4. industry standard fpga board memory. on power-up, the fpga sram is read y to be configured with th e sysconfig port active. the ieee 1149.1 serial mode can be activated any time after power-up by sending the appropriate command through the tap port. once a configuration port is selected, that port is locked and another configuration port cannot be activated until the next power-up sequence. for more information about device configuration, please see the list of technical documentation at the end of this data sheet. internal logic analyzer capability (isptracy) all latticeecp/ec devices support an internal logic anal yzer diagnostic feature. the diagnostic features provide capabilities similar to an external logic analyzer, such as programmable event and trigger condition and deep trace memory. this feature is enabled by latt ices isptracy. the isptracy utility is added into the user design at com- pile time. for more information about isptracy, please see information regarding additional technical documentation at the end of this data sheet. external resistor latticeecp/ec devices require a single external, 10k ohm +/- 1% value between the xres pin and ground. device configuration will not be comple ted if this resistor is miss ing. there is no boundary sca n register on the external resistor pad.
2-33 architecture lattice semiconductor latticeecp/ ec family data sheet oscillator every latticeecp/ec device has an internal cmos oscillator which is used to derive a master clock for configura- tion. the oscillator and the master cloc k run continuously. the default value of the master clock is 2.5mhz. table 2- 15 lists all the available master clock frequencies. when a different master clock is selected during the design pro- cess, the following sequence takes place: 1. user selects a different master clock frequency. 2. during configuration the device starts with the default (2.5mhz) master clock frequency. 3. the clock configuration settings are contained in the early configuration bit stream. 4. the master clock frequency changes to the selected frequency once the clock configuration bits are received. for further information about the use of this oscillator for configuration, please see th e list of technical documenta- tion at the end of this data sheet. table 2-15. selectable master clock (cclk) frequencies during configuration density shifting the latticeecp/ec family has been designed to ensure t hat different density devices in the same package have the same pin-out. furthermore, the architecture ensures a high success rate when performing design migration from lower density parts to hi gher density parts. in many cases, it is also possible to shift a lower utilization design targeted for a high-density device to a lower density device . however, the exact details of the final resource utiliza- tion will impact the likely success in each case. cclk (mhz) cclk (mhz) cclk (mhz) 2.5* 13 45 4.3 15 51 5.4 20 55 6.9 26 60 8.1 30 130 9.2 34 10.0 41
www.latticesemi.com 3-1 dc and switching_01.9 february 2008 data sheet ?2008 lattice semiconductor corp. all lattice trademarks, registered trademarks, patents, and disclaimers are as listed at www .latticesemi.com/legal. all other brand or product names are trademarks or registered trademarks of their respective holders. the specifications and information herein are subject to change without notice. recommended operating conditions absolute maximum ratings 1, 2, 3 1. stress above those listed under the absol ute maximum ratings?may cause permanent dam age to the device. functional operation of the device at these or any other conditions above those indicated in the operational sections of this specification is not implied. 2. compliance with the lattice thermal management document is required. 3. all voltages referenced to gnd. supply voltage v cc . . . . . . . . . . . . . . . . . . . -0.5 to 1.32v supply voltage v ccaux . . . . . . . . . . . . . . . . -0.5 to 3.75v supply voltage v ccj . . . . . . . . . . . . . . . . . . -0.5 to 3.75v output supply voltage v ccio . . . . . . . . . . . -0.5 to 3.75v dedicated input voltage applied 4 . . . . . . . . -0.5 to 4.25v i/o tristate voltage applied 4 . . . . . . . . . . . . -0.5 to 3.75v storage temperature (ambient) . . . . . . . . . -65 to 150c junction temp. (tj) . . . . . . . . . . . . . . . . . . . . . . . +125c 4. overshoot and undershoot of -2v to (v ihmax + 2) volts is permitted for a duration of <20ns. symbol parameter min. max. units v cc core supply voltage 1.14 1.26 v v ccaux 3 auxiliary supply voltage 3.135 3.465 v v ccpll pll supply voltage for ecp/ec33 1.14 1.26 v v ccio 1, 2 i/o driver supply voltage 1.140 3.465 v v ccj 1 supply voltage for ieee 1149.1 test access port 1.140 3.465 v t jcom junction commercial operation 0 85 c t jind junction industrial operation -40 100 ? 1. if v ccio or v ccj is set to 1.2v, they must be connected to the same power supply as v cc. if v ccio or v ccj is set to 3.3v, they must be con- nected to the same power supply as v ccaux . 2. see recommended voltages by i/o standard in subsequent table. 3. v ccaux ramp rate must not exceed 3mv/s for commercial and 0.6 mv/ s for industrial device operations during power up when transition - ing between 0.8v and 1.8v. hot socketing specifications 1, 2, 3, 4 1. insensitive to sequence of v cc, v ccaux and v ccio . however, assumes monotonic rise/fall rates for v cc, v ccaux and v ccio. 2. 0 e v cc e v cc (max), 0 e v ccio e v ccio (max) or 0 e v ccaux e v ccaux (max). 3. i dk is additive to i pu, i pw or i bh . 4. lvcmos and lvttl only. symbol parameter condition min. typ. max. units top and bottom general purpose sysi/os (banks 0, 1, 4 and 5), jtag and dedicated sysconfig pins i dk_tb input or i/o leakage current 0 e v in e v ih (max.) +/-1000 a left and right general purpose sy si/os (banks 2, 3, 6 and 7) i dk_lr input or i/o leakage current v in e v ccio +/-1000a v in > v ccio ?5ma latticeecp/ec family data sheet dc and switching characteristics
3-2 dc and switching characteristics lattice semiconductor latticeecp/ ec family data sheet dc electrical characteristics over recommended operating conditions symbol parameter condition min. typ. max. units i il, i ih 1 input or i/o leakage 0 e v in e (v ccio - 0.2v) 10 a i ih 1, 3 input or i/o high leakage (v ccio - 0.2v) e v ih e 3.6v 40 a i pu i/o active pull-up current 0 e v in e 0.7 v ccio -30 -150 ? i pd i/o active pull-down current v il (max) e v in e v ih (max) 30 150 a i bhls bus hold low sustaining current v in = v il (max) 30 a i bhhs bus hold high sustaining current v in = 0.7v ccio -30 a i bhlo bus hold low overdrive current 0 e v in e v ih (max) 150 ? i bhlh bus hold high overdrive current 0 e v in e v ih (max) -150 a v bht bus hold trip points 0 e v in e v ih (max) v il (max) v ih (min) v c1 i/o capacitance 2 v ccio = 3.3v, 2.5v, 1.8v, 1.5v, 1.2v, v cc = 1.2v, v io = 0 to v ih (max) ?pf c2 dedicated input capacitance 2 v ccio = 3.3v, 2.5v, 1.8v, 1.5v, 1.2v, v cc = 1.2v, v io = 0 to v ih (max) ?pf 1. input or i/o leakage current is measured with the pin configured as an input or as an i/o with the output driver tri-stated. it is not measured with the output driver active. bu s maintenance circuits are disabled. 2. t a 25 o c, f = 1.0mhz 3. for top and bottom general purpose i/o pins, when v ih is higher than v ccio , a transient current typically of 30ns in duration or less with a peak current of 6ma can occur on the high-to-low transition. for left and right i/o banks, v ih must be less than or equal to v ccio .
3-3 dc and switching characteristics lattice semiconductor latticeecp/ ec family data sheet supply current (standby) 1, 2, 3, 4 over recommended operating conditions 1. for further information about supply current, please see the list of technical documentation at the end of this data sheet. 2. assumes all outputs are tristated, all inputs are configured as lvcmos and held at the v ccio or gnd. 3. frequency 0mhz. 4. pattern represents a ?lank?configuration data file. symbol parameter device typ. 5 5. t j =25 o c, power supplies at nominal voltage. units i cc core power supply current lfec1 6 ma lfec3 10 ma lfecp6/lfec6 15 ma lfecp10/lfec10 25 ma lfecp15/lfec15 35 ma lfecp20/lfec20 60 ma lfecp33/lfec33 85 ma i ccaux auxiliary power supply current 15 ma i ccpll pll power supply current 5 ma i ccio bank power supply current 6 6. per bank. 2ma i ccj v ccj power supply current 5 ma
3-4 dc and switching characteristics lattice semiconductor latticeecp/ ec family data sheet initialization supply current 1, 2, 3, 4, 5, 6 over recommended operating conditions 1. until done signal is active. 2. for further information about supply current, please see the lis t of technical documentation at the end of this data sheet. 3. assumes all outputs are tristated, all inputs are configured as lvcmos and held at the v ccio or gnd. 4. frequency 0mhz. 5. pattern represents typical design with 65% logic, 55% ebr, 10% routing utilization. 6. t j =25 o c, power supplies at nominal voltage. symbol parameter devices typ. 6 units i cc core power supply current lfec1 25 ma lfec3 40 ma lfecp6/lfec6 50 ma lfecp10/lfec10 60 ma lfecp15/lfec15 70 ma lfecp20/lfec20 150 ma lfecp33/lfec33 220 ma i ccaux auxiliary power supply current lfec1 30 ma lfec3 30 ma lfecp6/lfec6 30 ma lfecp10/lfec10 35 ma lfecp15/lfec15 35 ma lfecp20/lfec20 40 ma lfecp33/lfec33 40 ma i ccpll pll power supply current 12 ma i ccio bank power supply current 7 7. per bank. lfec1 4 ma lfec3 5 ma lfecp6/lfec6 6 ma lfecp10/lfec10 6 ma lfecp15/lfec15 7 ma lfecp20/lfec20 8 ma lfecp33/lfec33 8 ma i ccj v ccj power supply current 20 ma
3-5 dc and switching characteristics lattice semiconductor latticeecp/ ec family data sheet sysi/o recommended operating conditions v ccio v ref (v) standard min. typ. max. min. typ. max. lv c m o s 3 . 3 3 . 1 3 5 3 . 3 3 . 4 6 5 lv c m o s 2 . 5 2 . 3 7 5 2 . 5 2 . 6 2 5 lv c m o s 1 . 8 1 . 7 1 1 . 8 1 . 8 9 lv c m o s 1 . 5 1 . 4 2 5 1 . 5 1 . 5 7 5 lv c m o s 1 . 2 1 . 1 4 1 . 2 1 . 2 6 lv t t l 3 . 1 3 5 3 . 3 3 . 4 6 5 pci 3.135 3.3 3.465 sstl18 class i 1.71 1.8 1.89 0.833 0.90 0.969 sstl2 class i, ii 2.375 2.5 2.625 1.15 1.25 1.35 sstl3 class i, ii 3.135 3.3 3.465 1.3 1.5 1.7 hstl15 class i 1.425 1.5 1.575 0.68 0.75 0.9 hstl15 class iii 1.425 1.5 1.575 0.9 hstl 18 class i, ii 1.71 1.8 1.89 0.9 hstl 18 class iii 1.71 1.8 1.89 1.08 lv d s 2 . 3 7 5 2 . 5 2 . 6 2 5 lv p e c l 1 3.135 3.3 3.465 blvds 1 2.375 2.5 2.625 rsds 1 2.375 2.5 2.625 1. outputs are implemented with the addition of external resistors. v ccio applies to outputs only.
3-6 dc and switching characteristics lattice semiconductor latticeecp/ ec family data sheet sysi/o single-ended dc el ectrical characteristics input/output standard v il v ih v ol max. (v) v oh min. (v) i ol 1 (ma) i oh 1 (ma) min. (v) max. (v) min. (v) max. (v) lv c m o s 3 . 3 - 0 . 3 0 . 8 2 . 0 3 . 6 0.4 v ccio - 0.4 20, 16, 12, 8, 4 -20, -16, -12, -8, -4 0.2 v ccio - 0.2 0.1 -0.1 lv t t l - 0 . 3 0 . 8 2 . 0 3 . 6 0.4 v ccio - 0.4 20, 16, 12, 8, 4 -20, -16, -12, -8, -4 0.2 v ccio - 0.2 0.1 -0.1 lv c m o s 2 . 5 - 0 . 3 0 . 7 1 . 7 3 . 6 0.4 v ccio - 0.4 20, 16, 12, 8, 4 -20, -16, -12, -8, -4 0.2 v ccio - 0.2 0.1 -0.1 lv c m o s 1 . 8 - 0 . 3 0 . 3 5 v ccio 0.65v ccio 3.6 0.4 v ccio - 0.4 16, 12, 8, 4 -16, -12, -8, -4 0.2 v ccio - 0.2 0.1 -0.1 lv c m o s 1 . 5 - 0 . 3 0 . 3 5 v ccio 0.65v ccio 3.6 0.4 v ccio - 0.4 8, 4 -8, -4 0.2 v ccio - 0.2 0.1 -0.1 lv c m o s 1 . 2 - 0 . 3 0 . 3 5 v cc 0.65v cc 3.6 0.4 v ccio - 0.4 6, 2 -6, -2 0.2 v ccio - 0.2 0.1 -0.1 pci -0.3 0.3v ccio 0.5v ccio 3.6 0.1v ccio 0.9v ccio 1.5 -0.5 sstl3 class i -0.3 v ref - 0.2 v ref + 0.2 3.6 0.7 v ccio - 1.1 8 -8 sstl3 class ii -0.3 v ref - 0.2 v ref + 0.2 3.6 0.5 v ccio - 0.9 16 -16 sstl2 class i -0.3 v ref - 0.18 v ref + 0.18 3.6 0.54 v ccio - 0.62 7.6 -7.6 sstl2 class ii -0.3 v ref - 0.18 v ref + 0.18 3.6 0.35 v ccio - 0.43 15.2 -15.2 sstl18 class i -0.3 v ref - 0.125 v ref + 0.125 3.6 0.4 v ccio - 0.4 6.7 -6.7 hstl15 class i -0.3 v ref - 0.1 v ref + 0.1 3.6 0.4 v ccio - 0.4 8 -8 hstl15 class iii -0.3 v ref - 0.1 v ref + 0.1 3.6 0.4 v ccio - 0.4 24 -8 hstl18 class i -0.3 v ref - 0.1 v ref + 0.1 3.6 0.4 v ccio - 0.4 9.6 -9.6 hstl18 class ii -0.3 v ref - 0.1 v ref + 0.1 3.6 0.4 v ccio - 0.4 16 -16 hstl18 class iii -0.3 v ref - 0.1 v ref + 0.1 3.6 0.4 v ccio - 0.4 24 -8 1. the average dc current drawn by i/os between gnd connections, or between the last gnd in an i/o bank and the end of an i/o ba nk, as shown in the logic signal connections tabl e shall not exceed n * 8ma. where n is t he number of i/os bet ween bank gnd connection s or between the last gnd in a bank and the end of a bank.
3-7 dc and switching characteristics lattice semiconductor latticeecp/ ec family data sheet sysi/o differential electrical characteristics lv d s over recommended operating conditions parameter symbol parameter description test conditions min. typ. max. units v inp, v inm input voltage 0 2.4 v v thd differential input threshold +/-100 mv v cm input common mode voltage 100mv e v thd v thd /2 1.2 1.8 v 200mv e v thd v thd /2 1.2 1.9 v 350mv e v thd v thd /2 1.2 2.0 v i in input current power on or power off +/-10 ? v oh output high voltage for v op or v om r t = 100 ohm 1.38 1.60 v v ol output low voltage for v op or v om r t = 100 ohm 0.9v 1.03 v v od output voltage differential (v op - v om ), r t = 100 ohm 250 350 450 mv ' v od change in v od between high and low 50mv v os output voltage offset (v op + v om )/2, r t = 100 ohm 1.125 1.25 1.375 v ' v os change in v os between h and l 50 mv i osd output short circuit current v od = 0v driver outputs shorted 6ma
3-8 dc and switching characteristics lattice semiconductor latticeecp/ ec family data sheet differential hstl and sstl differential hstl and sstl outputs are implemented as a pair of complementary single-ended outputs. all allow- able single-ended output cl asses (class i and class ii) are supported in this mode. lv d s 2 5 e the top and bottom side of latticeecp/ec devices support lvds outputs via emulated complementary lvcmos outputs in conjunction with a parallel resistor across the driver outputs. the scheme shown in figure 3-1 is one possible solution for point-to-point signals. figure 3-1. lvds25e output termination example table 3-1. lvds25e dc conditions parameter description typical units v oh output high voltage 1.42 v v ol output low voltage 1.08 v v od output differenti al voltage 0.35 v v cm output common mode voltage 1.25 v z back back impedance 100 ? + - bourns cat16-lv4f12 rs=165 ohms (?%) rs=165 ohms (?%) rd = 140 ohms (?%) rd = 100 ohms (?%) off-chip transmission line, zo = 100 ohm differential vccio = 2.5v (?%) vccio = 2.5v (?%) on-chip off-chip on-chip
3-9 dc and switching characteristics lattice semiconductor latticeecp/ ec family data sheet blvds the latticeecp/ec devices support blvds standard. this standard is emulated using complementary lvcmos outputs in conjunction with a parallel external resistor across the driver outputs. blvds is intended for use when multi-drop and bi-directional multi-point differential signaling is required. the scheme shown in figure 3-2 is one possible solution for bi-directional multi-point differential signals. figure 3-2. blvds multi-point output example table 3-2. blvds dc conditions 1 over recommended operating conditions typical parameter description zo = 45 zo = 90 units z out output impedance 100 100 ohm r tleft left end termination 45 90 ohm r tright right end termination 45 90 ohm v oh output high voltage 1.375 1.48 v v ol output low voltage 1.125 1.02 v v od output differential voltage 0.25 0.46 v v cm output common mode voltage 1.25 1.25 v i dc dc output current 11.2 10.2 ma 1. for input buffer, see lvds table. heavily loaded backplane, effective zo ~ 45 to 90 ohms different ial 100 100 2.5v 2.5v + - 100 100 2.5v 2.5v + - 100 100 2.5v 2.5v + - 100 100 2.5v 2.5v + - . . . 45-90 ohms, +/- 1% 45-90 ohms, +/- 1 % + - + - . . . - %
3-10 dc and switching characteristics lattice semiconductor latticeecp/ ec family data sheet lv p e c l the latticeecp/ec devices support di fferential lvpecl standard . this standard is em ulated using complemen- tary lvcmos outputs in conj unction with a parallel resistor across the driver outputs. the lvpecl input standard is supported by the lvds differential input buffer. the scheme shown in figure 3-3 is one possible solution for point-to-point signals. figure 3-3. diff erential lvpecl table 3-3. lvpecl dc conditions 1 over recommended operating conditions for further information about lvpecl, blvds and other differential interfaces please see the list of technical infor- mation at the end of this data sheet. parameter description typical units z out output impedance 100 ohm r p driver parallel resistor 150 ohm r t receiver termination 100 ohm v oh output high voltage 2.03 v v ol output low voltage 1.27 v v od output differential voltage 0.76 v v cm output common mode voltage 1.65 v z back back impedance 85.7 ohm i dc dc output current 12.7 ma 1. for input buffer, see lvds table. transmission line, zo = 100 ohm differential 100 ohms 100 ohms 100 ohms off-chip 3.3v 3.3v + - ~150 ohms
3-11 dc and switching characteristics lattice semiconductor latticeecp/ ec family data sheet rsds the latticeecp/ec devices support differential rsds stan dard. this standard is emulated using complementary lv c m o s o u t p u t s i n c o n j u n c t i o n w i t h a p a r a l l e l r e s i s t o r a c r o s s t h e d r i ve r o u t p u t s. t h e r s d s i n p u t s t a n d a r d i s s u p - ported by the lvds differential input buffer. the scheme shown in figure 3-4 is one possible solution for rsds standard implementation. use lvds25e mode with suggested resistors for rsds operation. resistor values in figure 3-4 are industry standard values for 1% resistors. figure 3-4. rsds (reduced swing differential standard) table 3-4. rsds dc conditions parameter description typical units z out output impedance 20 ohm r s driver series resistor 294 ohm r p driver parallel resistor 121 ohm r t receiver termination 100 ohm v oh output high voltage 1.35 v v ol output low voltage 1.15 v v od output differential voltage 0.20 v v cm output common mode voltage 1.25 v z back back impedance 101.5 ohm i dc dc output current 3.66 ma 100 294 294 on-chip emulated rsds buffer vccio = 2.5v vccio = 2.5v zo = 100 + - 121 off-chip
3-12 dc and switching characteristics lattice semiconductor latticeecp/ ec family data sheet typical building block function performance pin-to-pin performance (lvcmos25 12ma drive) register-to-register performance 1 function -5 timing units basic functions 16-bit decoder 5.5 ns 32-bit decoder 6.9 ns 64-bit decoder 7.1 ns 4:1 mux 4.3 ns 8:1 mux 4.7 ns 16:1 mux 5.0 ns 32:1 mux 5.5 ns function -5 timing units basi c functions 16 bit decoder 410 mhz 32 bit decoder 283 mhz 64 bit decoder 272 mhz 4:1 mux 613 mhz 8:1 mux 565 mhz 16:1 mux 526 mhz 32:1 mux 442 mhz 8-bit adder 363 mhz 16-bit adder 353 mhz 64-bit adder 196 mhz 16-bit counter 414 mhz 32-bit counter 317 mhz 64-bit counter 216 mhz 64-bit accumulator 178 mhz embedded memory functions 256x36 single port ram 280 mhz 512x18 true-dual port ram 280 mhz distributed memory functions 16x2 single port ram 460 mhz 64x2 single port ram 375 mhz 128x4 single port ram 294 mhz 32x2 pseudo-dual port ram 392 mhz 64x4 pseudo-dual port ram 332 mhz dsp function 2 9x9 pipelined multiply/accumulate 242 mhz 18x18 pipelined multiply/accumulate 238 mhz 36x36 pipelined multiply 235 mhz 1. these timing numbers were generated using the isplever design tool. exact performance may vary with design and tool version. the tool uses internal parameters that have been char acterized but are not tested on every device. 2. applies to latticeecp devices only. timing v.g 0.30
3-13 dc and switching characteristics lattice semiconductor latticeecp/ ec family data sheet derating timing tables logic timing provided in the following sections of the data sheet and the isplever design tools are worst-case numbers in the operating range. actual delays at nominal temperature and voltage for best-case process, can be much better than the values given in the tables. to calculate logic timing numbers at a particular temperature and voltage multiply the noted numbers with the derating factors provided below. the junction temperature for the fpga depends on the power dissipation by the device, the package thermal char- acteristics ( 4 ja ), and the ambient temperature, as calculated with the following equation: t jmax = t amax + (power * 4 ja ) the user must determine this temperature and then use it to determine the derating factor based on the following derating tables: t j c. table 3-5. delay derating table for internal blocks t j c commercial t j c industrial power supply voltage 1.14v 1.2v 1.26v ?400.820.770.71 ?250.820.760.71 0200.890.830.78 25 45 0.93 0.87 0.81 85 105 1.00 0.94 0.89
3-14 dc and switching characteristics lattice semiconductor latticeecp/ ec family data sheet latticeecp/ec external switching characteristics over recommended operating conditions parameter description device -5 -4 -3 units min. max. min. max. min. max. general i/o pin parameters (using primary clock without pll) 1 t co 7 clock to output - pio output  register lfec1 5.09 6.11 7.13 ns lfec3 5.71 6.85 7.99 ns lfec6 5.60 6.72 7.84 ns lfec10 5.47 6.57 7.66 ns lfec15 5.67 6.81 7.94 ns lfec20 5.89 7.07 8.25 ns lfec33 6.19 7.42 8.66 ns t su 7 clock to data setup - pio input register lfec1 -0.08 -0.10 -0.12 ns lfec3 -0.70 -0.84 -0.98 ns lfec6 -0.63 -0.76 -0.89 ns lfec10 -0.43 -0.52 -0.61 ns lfec15 -0.70 -0.84 -0.98 ns lfec20 -0.88 -1.06 -1.24 ns lfec33 -1.12 -1.34 -1.56 ns t h 7 clock to data ho ld - pio input  register lfec1 2.19 2.62 3.06 ns lfec3 2.80 3.36 3.92 ns lfec6 2.69 3.23 3.77 ns lfec10 2.56 3.08 3.59 ns lfec15 2.76 3.32 3.87 ns lfec20 2.99 3.58 4.18 ns lfec33 3.28 3.93 4.59 ns t su_del 7 clock to data setup - pio input register with data input delay lfec1 3.36 4.03 4.70 ns lfec3 2.74 3.29 3.84 ns lfec6 2.81 3.37 3.93 ns lfec10 3.01 3.61 4.21 ns lfec15 2.74 3.29 3.83 ns lfec20 2.56 3.07 3.58 ns lfec33 2.32 2.79 3.25 ns th_del 7 clock to data ho ld - pio input  register with input data delay lfec1 -1.31 -1.57 -1.83 ns lfec3 -0.70 -0.83 -0.97 ns lfec6 -0.80 -0.96 -1.12 ns lfec10 -0.93 -1.12 -1.30 ns lfec15 -0.73 -0.88 -1.02 ns lfec20 -0.51 -0.61 -0.71 ns lfec33 -0.22 -0.26 -0.30 ns f max_io 2 clock frequency of i/o and pfu register all 420 378 340 mhz ddr i/o pin parameters 3, 4, 5 t dvadq data valid after dqs (ddr read) all 0.19 0.19 0.19 ui t dvedq data hold after dqs (ddr read) all 0.67 0.67 0.67 ui
3-15 dc and switching characteristics lattice semiconductor latticeecp/ ec family data sheet figure 3-5. ddr timings t dqvbs data valid before dqs all 0.20 0.20 0.20 ui t dqvas data valid after dqs all 0.20 0.20 0.20 ui f max_ddr ddr clock frequency all 95 200 95 166 95 133 mhz primary and secondary clock 6 f max_pri 2 frequency for primary clock tree all 420 378 340 mhz t w_pri clock pulse width for primary clock all 1.19 1.19 1.19 ns t skew_pri primary clock skew within an i/o bank all 250 300 350 ps 1. general timing numbers based on lvcmos2.5v, 12 ma. loading of 0 pf. 2. using lvds i/o standard. 3. ddr timing numbers based on sstl i/o. 4. ddr specifications are characterized but not tested. 5. ui is average bit period. 6. based on a single primary clock. 7. these timing numbers were generated using isplever design tool. exact performance may vary with design and tool version. the tool uses internal parameters that have been characterized but are not tested on every device. timing v.g 0.30 latticeecp/ec external switchin g characteristics (continued) over recommended operating conditions parameter description device -5 -4 -3 units min. max. min. max. min. max. t dqvas t dqvbs dq and dqs write timings t dqs dq dqs dq dvedq t dvadq dq and dqs read timings
3-16 dc and switching characteristics lattice semiconductor latticeecp/ ec family data sheet latticeecp/ec internal sw itching characteristics over recommended operating conditions parameter description -5 -4 -3 units min. max. min. max. min. max. pfu/pff logic mode timing t lut4_pfu lut4 delay (a to d inputs to f output) 0.25 0.31 0.36 ns t lut6_pfu lut6 delay (a to d inputs to ofx output) 0.40 0.48 0.56 ns t lsr_pfu set/reset to output of pfu 0.81 0.98 1.14 ns t sum_pfu clock to mux (m0,m1) input setup time 0.12 0.14 0.16 ns t hm_pfu clock to mux (m0,m1) input ho ld time -0.05 -0.06 -0.06 ns t sud_pfu clock to d input setup time 0.12 0.14 0.16 ns t hd_pfu clock to d input hold time -0.03 -0.03 -0.04 ns t ck2q_pfu clock to q delay, d-type register configuration 0.36 0.44 0.51 ns t le2q_pfu clock to q delay latch configuration 0.48 0.58 0.68 ns t ld2q_pfu d to q throughput delay when latch is enabled 0.50 0.60 0.69 ns pfu dual port memory mode timing t coram_pfu clock to output 0.36 0.44 0.51 ns t sudata_pfu data setup time -0.20 -0.24 -0.28 ns t hdata_pfu data hold time 0.26 0.31 0.36 ns t suaddr_pfu address setup time -0.51 -0.62 -0.72 ns t haddr_pfu address hold time 0.64 0.77 0.90 ns t suwren_pfu write/read enable setup time -0.24 -0.29 -0.34 ns t hwren_pfu write/read enable hold time 0.30 0.36 0.42 ns pic timing pio input/output buffer timing t in_pio input buffer delay 0.56 0.67 0.78 ns t out_pio output buffer delay 1.92 2.31 2.69 ns iologic input/output timing t sui_pio input register setup time (data before clock) 0.90 1.08 1.26 ns t hi_pio input register hold time (dat a after clock) 0.62 0.74 0.87 ns t coo_pio output register clock to ou tput delay 0.33 0.40 0.46 ns t suce_pio input register clock enable setup time -0.10 -0.12 -0.14 ns t hce_pio input register clock enable hold time 0.12 0.14 0.17 ns t sulsr_pio set/reset setup time 0.18 0.21 0.25 ns t hlsr_pio set/reset hold time -0.15 -0.18 -0.21 ns ebr timing t co_ebr clock to output from addre ss or data 3.64 4.37 5.10 ns t coo_ebr clock to output from ebr out put register 0.74 0.88 1.03 ns t sudata_ebr setup data to ebr memory -0.29 -0.35 -0.41 ns t hdata_ebr hold data to ebr memory 0.37 0.44 0.52 ns t suaddr_ebr setup address to ebr memory -0.29 -0.35 -0.41 ns t haddr_ebr hold address to ebr memory 0.37 0.45 0.52 ns t suwren_ebr setup write/read enable to ebr memory -0.18 -0.22 -0.26 ns t hwren_ebr hold write/read enable to ebr memory 0.23 0.28 0.33 ns
3-17 dc and switching characteristics lattice semiconductor latticeecp/ ec family data sheet t suce_ebr clock enable setup time to ebr output  register 0.18 0.21 0.25 ns t hce_ebr clock enable hold time to ebr ou tput register -0.14 -0.17 -0.20 ns t rsto_ebr reset to output delay time from ebr output register ?.47?.76?.05 ns pll parameters t rstrec reset recovery to rising clock 1.00 1.00 1.00 ns t rstsu reset signal setup time 1.00 1.00 1.00 ns dsp block timing 2, 3 t sui_dsp input register setup time -0.38 -0.30 -0.23 ns t hi_dsp input register hold time 0.71 0.86 1.00 ns t sup_dsp pipeline register setup time 3.31 3.98 4.64 ns t hp_dsp pipeline register hold time 0.71 0.86 1.00 ns t suo_dsp 4 output register setup time 5.54 6.64 7.75 ns t ho_dsp 4 output register hold time 0.71 0.86 1.00 ns t coi_dsp 4 input register clock to output time 7.50 9.00 10.50 ns t cop_dsp 4 pipeline register clock to output time 4.66 5.60 6.53 ns t coo_dsp output register clock to output time 1.47 1.77 2.06 ns t suadsub adsub input register setu p time -0.38 -0.30 -0.23 ns t hadsub adsub input register hold time 0.71 0.86 1.00 ns 1. internal parameters are characterized but not tested on every device. 2. these parameters apply to latticeecp devices only. 3. dsp block is configured in multiply add/sub 18 x 18 mode. 4. these parameters include the adder subtractor block in the path. timing v.g 0.30 latticeecp/ec internal switchin g characteristics (continued) over recommended operating conditions parameter description -5 -4 -3 units min. max. min. max. min. max.
3-18 dc and switching characteristics lattice semiconductor latticeecp/ ec family data sheet timing diagrams pfu timing diagrams figure 3-6. slice single/dual port write cycle timing figure 3-7. slice single /dual port read cycle timing ck d wre d di[1:0] do[1:0] ad ad[3:0] old data wre d do[1:0] ad ad[3:0] old data
3-19 dc and switching characteristics lattice semiconductor latticeecp/ ec family data sheet ebr memory timing diagrams figure 3-8. read/write mode (normal) note: input data and address are registered at the positive edge of the clock and output data appears after the positive edge o f the clock. figure 3-9. read/write mode with input and output registers a0 a1 a0 a1 d0 d1 doa a0 t co_ebr t co_ebr t co_ebr t su t h d0 d1 d0 dia ada wea csa clka a0 a1 a0 a0 d0 d1 output is only updated during a read cycle a1 d0 d1 mem(n) data from previous read dia ada wea csa clka doa (regs) t su t h t coo_ebr t coo_ebr
3-20 dc and switching characteristics lattice semiconductor latticeecp/ ec family data sheet figure 3-10. read before write (sp read/write on port a, input registers only) note: input data and address are registered at the positive edge of the clock and output data appears after the positive edge o f the clock. figure 3-11. write through (sp read/write on port a, input registers only) note: input data and address are registered at the positive edge of the clock and output data appears after the positive edge o f the clock. a0 a1 a0 a1 d0 d1 d2 doa a0 d2 d3 d1 old a0 data old a1 data d0 d1 dia ada wea csa clka t su t h t access t access t access t access t access a0 a1 a0 d0 d1 d4 t su t access t access t access t h d2 d3 d4 d0 d1 d2 data from prev read or write three consecutive writes to a0 d3 doa dia ada wea csa clka t access
3-21 dc and switching characteristics lattice semiconductor latticeecp/ ec family data sheet latticeecp/ec family timing adders 1, 2, 3 over recommended operating conditions buffer type description -5 -4 -3 units input adjusters lv d s 2 5 lv d s 0 . 4 1 0 . 5 0 0 . 5 8 n s blvds25 blvds 0.41 0.50 0.58 ns lv p e c l 3 3 lv p e c l 0 . 5 0 0 . 6 0 0 . 7 0 n s hstl18_i hstl_18 class i 0.41 0.49 0.57 ns hstl18_ii hstl_18 class ii 0.41 0.49 0.57 ns hstl18_iii hstl_18 class iii 0.41 0.49 0.57 ns hstl18d_i differential hstl 18 class i 0.37 0.44 0.52 ns hstl18d_ii differential hstl 18 class ii 0.37 0.44 0.52 ns hstl18d_iii differential hstl 18 class iii 0.37 0.44 0.52 ns hstl15_i hstl_15 class i 0.40 0.48 0.56 ns hstl15_iii hstl_15 class iii 0.40 0.48 0.56 ns hstl15d_i differential hstl 15 class i 0.37 0.44 0.51 ns hstl15d_iii differential hstl 15 class iii 0.37 0.44 0.51 ns sstl33_i sstl_3 class i 0.46 0.55 0.64 ns sstl33_ii sstl_3 class ii 0.46 0.55 0.64 ns sstl33d_i differential sstl_3 class i 0.39 0.47 0.55 ns sstl33d_ii differential sstl_3 class ii 0.39 0.47 0.55 ns sstl25_i sstl_2 class i 0.43 0.51 0.60 ns sstl25_ii sstl_2 class ii 0.43 0.51 0.60 ns sstl25d_i differential sstl_2 class i 0.38 0.45 0.53 ns sstl25d_ii differential sstl_2 class ii 0.38 0.45 0.53 ns sstl18_i sstl_18 class i 0.40 0.48 0.56 ns sstl18d_i differential sstl_18 class i 0.37 0.44 0.51 ns lv t t l 3 3 lv t t l 0 . 0 7 0 . 0 9 0 . 1 0 n s lv c m o s 3 3 lv c m o s 3 . 3 0 . 0 7 0 . 0 9 0 . 1 0 n s lv c m o s 2 5 lv c m o s 2 . 5 0 . 0 0 0 . 0 0 0 . 0 0 n s lv c m o s 1 8 lv c m o s 1 . 8 0 . 0 7 0 . 0 9 0 . 1 0 n s lv c m o s 1 5 lv c m o s 1 . 5 0 . 2 4 0 . 2 9 0 . 3 3 n s lv c m o s 1 2 lv c m o s 1 . 2 1 . 2 7 1 . 5 2 1 . 7 7 n s pci33 pci 0.07 0.09 0.10 ns output adjusters lv d s 2 5 e lv d s 2 . 5 e 0 . 1 2 0 . 1 4 0 . 1 7 n s lv d s 2 5 lv d s 2 . 5 - 0 . 4 4 - 0 . 5 3 - 0 . 6 2 n s blvds25 blvds 2.5 0.33 0.40 0.46 ns lv p e c l 3 3 lv p e c l 3 . 3 0 . 2 0 0 . 2 4 0 . 2 8 n s hstl18_i hstl_18 class i -0.10 -0.12 -0.14 ns hstl18_ii hstl_18 class ii 0.06 0.07 0.08 ns hstl18_iii hstl_18 class iii 0.15 0.19 0.22 ns hstl18d_i differential hstl 18 class i -0.10 -0.12 -0.14 ns hstl18d_ii differential hstl 18 class ii 0.06 0.07 0.08 ns hstl18d_iii differential hstl 18 class iii 0.15 0.19 0.22 ns hstl15_i hstl_15 class i 0.08 0.10 0.11 ns
3-22 dc and switching characteristics lattice semiconductor latticeecp/ ec family data sheet hstl15_ii hstl_15 class ii 0.10 0.12 0.14 ns hstl15_iii hstl_15 class iii 0.10 0.12 0.14 ns hstl15d_i differential hstl 15 class i 0.08 0.10 0.11 ns hstl15d_iii differential hstl 15 class iii 0.10 0.12 0.14 ns sstl33_i sstl_3 class i -0.05 -0.06 -0.07 ns sstl33_ii sstl_3 class ii 0.40 0.48 0.56 ns sstl33d_i differential sstl_3 class i -0.05 -0.06 -0.07 ns sstl33d_ii differential sstl_3 class ii 0.40 0.48 0.56 ns sstl25_i sstl_2 class i 0.05 0.07 0.08 ns sstl25_ii sstl_2 class ii 0.25 0.30 0.35 ns sstl25d_i differential sstl_2 class i 0.05 0.07 0.08 ns sstl25d_ii differential sstl_2 class ii 0.25 0.30 0.35 ns sstl18_i sstl_1.8 class i 0.01 0.01 0.01 ns sstl18d_i differential sstl_1.8 class i 0.01 0.01 0.01 ns lv t t l 3 3 _ 4 m a lv t t l 4 m a d r i ve 0 . 0 9 0 . 1 1 0 . 1 3 n s lv t t l 3 3 _ 8 m a lv t t l 8 m a d r i ve 0 . 0 7 0 . 0 8 0 . 0 9 n s lv t t l 3 3 _ 1 2 m a lv t t l 1 2 m a d r i ve - 0 . 0 3 - 0 . 0 4 - 0 . 0 5 n s lv t t l 3 3 _ 1 6 m a lv t t l 1 6 m a d r i ve 0 . 3 6 0 . 4 3 0 . 5 1 n s lv t t l 3 3 _ 2 0 m a lv t t l 2 0 m a d r i ve 0 . 2 8 0 . 3 3 0 . 3 9 n s lv c m o s 3 3 _ 4 m a lv c m o s 3 . 3 4 m a d r i ve 0 . 0 9 0 . 1 1 0 . 1 3 n s lv c m o s 3 3 _ 8 m a lv c m o s 3 . 3 8 m a d r i ve 0 . 0 7 0 . 0 8 0 . 0 9 n s lv c m o s 3 3 _ 1 2 m a lv c m o s 3 . 3 1 2 m a d r i ve - 0 . 0 3 - 0 . 0 4 - 0 . 0 5 n s lv c m o s 3 3 _ 1 6 m a lv c m o s 3 . 3 1 6 m a d r i ve 0 . 3 6 0 . 4 3 0 . 5 1 n s lv c m o s 3 3 _ 2 0 m a lv c m o s 3 . 3 2 0 m a d r i ve 0 . 2 8 0 . 3 3 0 . 3 9 n s lv c m o s 2 5 _ 4 m a lv c m o s 2 . 5 4 m a d r i ve 0 . 1 8 0 . 2 1 0 . 2 5 n s lv c m o s 2 5 _ 8 m a lv c m o s 2 . 5 8 m a d r i ve 0 . 1 0 0 . 1 2 0 . 1 4 n s lv c m o s 2 5 _ 1 2 m a lv c m o s 2 . 5 1 2 m a d r i ve 0 . 0 0 0 . 0 0 0 . 0 0 n s lv c m o s 2 5 _ 1 6 m a lv c m o s 2 . 5 1 6 m a d r i ve 0 . 2 2 0 . 2 6 0 . 3 1 n s lv c m o s 2 5 _ 2 0 m a lv c m o s 2 . 5 2 0 m a d r i ve 0 . 1 4 0 . 1 6 0 . 1 9 n s lv c m o s 1 8 _ 4 m a lv c m o s 1 . 8 4 m a d r i ve 0 . 1 5 0 . 1 8 0 . 2 1 n s lv c m o s 1 8 _ 8 m a lv c m o s 1 . 8 8 m a d r i ve 0 . 0 6 0 . 0 8 0 . 0 9 n s lv c m o s 1 8 _ 1 2 m a lv c m o s 1 . 8 1 2 m a d r i ve 0 . 0 1 0 . 0 1 0 . 0 1 n s lv c m o s 1 8 _ 1 6 m a lv c m o s 1 . 8 1 6 m a d r i ve 0 . 1 6 0 . 1 9 0 . 2 2 n s lv c m o s 1 5 _ 4 m a lv c m o s 1 . 5 4 m a d r i ve 0 . 2 6 0 . 3 1 0 . 3 6 n s lv c m o s 1 5 _ 8 m a lv c m o s 1 . 5 8 m a d r i ve 0 . 0 4 0 . 0 4 0 . 0 5 n s lv c m o s 1 2 _ 2 m a lv c m o s 1 . 2 2 m a d r i ve 0 . 3 6 0 . 4 3 0 . 5 0 n s lv c m o s 1 2 _ 6 m a lv c m o s 1 . 2 6 m a d r i ve 0 . 0 8 0 . 1 0 0 . 1 1 n s lv c m o s 1 2 _ 4 m a lv c m o s 1 . 2 4 m a d r i ve 0 . 3 6 0 . 4 3 0 . 5 0 n s pci33 pci33 1.05 1.26 1.46 ns 1. timing adders are characterized but not tested on every device. 2. lvcmos timing measured with the load specified in switching test conditions table of this document. 3. all other standards according to the appropriate specification. timing v.g 0.30 latticeecp/ec family timing adders 1, 2, 3 (continued) over recommended operating conditions buffer type description -5 -4 -3 units
3-23 dc and switching characteristics lattice semiconductor latticeecp/ ec family data sheet sysclock pll timing over recommended operating conditions parameter description conditions min. typ. max. units f in input clock frequency (clki, clkfb) 25 420 mhz f out output clock frequency (clkop, clkos) 25 420 mhz f out2 k-divider output frequency (clkok) 0.195 210 mhz f vco pll vco frequency 420 840 mhz f pfd phase detector input frequency 25 mhz ac characteristics t dt output clock duty cycle default duty cycle elected 3 45 50 55 % t ph 4 output phase accuracy 0.05 ui t opjit 1 output clock period jitter f out >= 100mhz +/- 125 ps f out < 100mhz 0.02 uipp t sk input clock to output clock skew divider ratio = integer +/- 200 ps t w output clock pulse width at 90% or 10% 3 1ns t lock 2 pll lock-in time 150 s t pa programmable delay unit 100 250 450 ps t ipjit input clock period jitter +/- 200 ps t fbkdly external feedback delay 10 ns t hi input clock high time 90% to 90% 0.5 ns t lo input clock low time 10% to 10% 0.5 ns t rst rst pulse width 10 ns 1. jitter sample is taken over 10,000 samples of the primary pll output with clean reference clock. 2. output clock is valid after t lock for pll reset and dynamic delay adjustment. 3. using lvds output buffers. 4. relative to clkop. timing v.g 0.30
3-24 dc and switching characteristics lattice semiconductor latticeecp/ ec family data sheet latticeecp/ec sysconfig port timing specifications over recommended operating conditions parameter description min. typ. max. units sysconfig byte data flow t sucbdi byte d[0:7] setup time to cclk 7 ns t hcbdi byte d[0:7] hold time to cclk 1 ns t codo clock to dout in flowthrough mode 12 ns t sucs cs[0:1] setup time to cclk 7 ns t hcs cs[0:1] hold time to cclk 1 ns t suwd write signal setup time to cclk 7 ns t hwd write signal hold time to cclk 1 ns t dcb cclk to busy delay time 12 ns t cord clock to out for read data 12 ns sysconfig byte slave clocking t bsch byte slave clock minimum high pulse 6 ns t bscl byte slave clock minimum low pulse 9 ns t bscyc byte slave clock cycle time 15 ns t suscdi din setup time to cclk slave mode 7 ns t hscdi din hold time to cclk slave mode 1 ns t codo clock to dout in flowthrough mode 12 ns sysconfig serial (bit) data flow t sumcdi din setup time to cclk master mode 7 ns t hmcdi din hold time to cclk master mode 1 ns sysconfig serial slave clocking t ssch serial slave clock minimum high pulse 6 ns t sscl serial slave clock minimum low pulse 6 ns sysconfig por, initialization and wake up t icfg minimum vcc to init high 50 ms t vmc time from ticfg to valid master clock 2 us t prgmrj program pin pulse rejection 8 ns t prgm programn low time to start configuration 25 ns t dinit init low time 1 ms t dppinit delay time from programn low to init low 37 ns t dinitd delay time from programn low to done low 37 ns t iodiss user i/o disable from programn low 35 ns t ioenss user i/o enabled time from cclk edge during wake up sequence ?25ns t mwc additional wake master clock signals after done pin high 120 cycles t sucfg cfg to initn setup time 100 ns t hcfg cfg to initn hold time 100 ns sysconfig spi port t cfgx init high to cclk low 80 ns t csspi init high to csspin low 2 us t cscclk cclk low before csspin low 0 - ns t socdo cclk low to output valid 15 ns
3-25 dc and switching characteristics lattice semiconductor latticeecp/ ec family data sheet master clock t soe csspin active setup time 300 ns t cspid csspin low to first clock edge setup time 300+3 cyc 600+6cyc ns f maxspi max frequency for spi 25 mhz t suspi sospi data setup time before cclk 7 ns t hspi sospi data hold time after cclk 1 ns timing v.g 0.30 clock mode min. typ. max. units 2.5mhz 1.75 2.5 3.25 mhz 5 mhz 3.78 5.4 7.02 mhz 10 mhz 7 10 13 mhz 15 mhz 10.5 15 19.5 mhz 20 mhz 14 20 26 mhz 25 mhz 18.2 26 33.8 mhz 30 mhz 21 30 39 mhz 35 mhz 23.8 34 44.2 mhz 40 mhz 28.7 41 53.3 mhz 45 mhz 31.5 45 58.5 mhz 50 mhz 35.7 51 66.3 mhz 55 mhz 38.5 55 71.5 mhz 60 mhz 42 60 78 mhz duty cycle 40 60 % timing v.g 0.30 latticeecp/ec sysconfig port timi ng specifications (continued) over recommended operating conditions parameter description min. typ. max. units
3-26 dc and switching characteristics lattice semiconductor latticeecp/ ec family data sheet figure 3-12. sysconfig parallel port read cycle figure 3-13. sysconfig parallel port write cycle cclk 1 cs1n csn writen busy d[0:7] t sucs t hcs t suwd t cord t dcb t hwd t bscyc t bsch t bscl 1. in master parallel mode the fpga provides cclk. in slave parallel mode the external device provides cclk. byte 0 byte 1 byte 2 byte n cclk 1 cs1n csn writen busy d[0:7] t sucs t hcs t suwd t hcbdi t dcb t hwd t bscyc t bsch t bscl t sucbdi byte 0 byte 1 byte 2 byte n 1. in master parallel mode the fpga provides cclk. in slave parallel mode the external device provides cclk.
3-27 dc and switching characteristics lattice semiconductor latticeecp/ ec family data sheet figure 3-14. sysconfig master serial port timing figure 3-15. sysconfig slave serial port timing figure 3-16. power-on-reset (por) timing cclk (output) din dout t sumcdi t hmcdi t codo cclk (input) din dout t suscdi t hscdi t codo t sscl t ssch cclk 2 done v cc /v ccaux 1 cfg[2:0] 3 t icfg valid initn t vmc t sucfg t hcfg 1. time taken from v cc or v ccaux , whichever is the last to reach its v min . 2. device is in a master mode. 3. the cfg pins are normally static (hard wired).
3-28 dc and switching characteristics lattice semiconductor latticeecp/ ec family data sheet figure 3-17. configuration from programn timing figure 3-18. wake-up timing figure 3-19. sysconfig spi port sequence cclk done programn cfg[2:0] t prgmrj valid initn t sucfg t hcfg 1. the cfg pins are normally static (hard wired) t dppinit t dinitd t dinit t iodiss user i/o cclk done programn user i/o initn t ioenss wake-up t mwc vcc t icfg t cscclk t soe t socdo t cspid t csspi t cfgx t dinit t dppinit programn done initn csspin cclk sispi/busy d7/spid0 d7 d5 d4 d3 d2 d1 d0 d6 xxx valid bitstream clock 127 clock 128 0 1 2 3 4 5 6 7 0 t prgm capture cfgx capture opcode t dinitd
3-29 dc and switching characteristics lattice semiconductor latticeecp/ ec family data sheet jtag port timing specifications over recommended operating conditions figure 3-20. jtag port timing waveforms symbol parameter min max units f max tck clock frequency 25 mhz t btcp tck [bscan] clock pulse width 40 ns t btcph tck [bscan] clock pulse width high 20 ns t btcpl tck [bscan] clock pulse width low 20 ns t bts tck [bscan] setup time 8 ns t bth tck [bscan] hold time 10 ns t btrf tck [bscan] rise/fall time 50 mv/ns t btco ta p c o n t r o l l e r fa l l i n g e d g e o f c l o ck t o va l i d o u t p u t 1 0 n s t btcodis ta p c o n t r o l l e r fa l l i n g e d g e o f c l o ck t o va l i d d i s a b l e 1 0 n s t btcoen ta p c o n t r o l l e r fa l l i n g e d g e o f c l o ck t o va l i d e n a b l e 1 0 n s t btcrs bscan test capture register setup time 8 ns t btcrh bscan test capture register hold time 25 ns t butco bscan test update register, falling edge of clock to valid output 25 ns t btuodis bscan test update register, falling edge of clock to valid disable 25 ns t btupoen bscan test update register, falling edge of clock to valid enable 25 ns timing v.g 0.30 tms tdi tck tdo data to be captured from i/o data to be driven out to i/o a t a d d i l a v a t a d d i l a v a t a d d i l a v a t a d d i l a v data captured t btcph t btcpl t btcoen t btcrs t btupoen t butco t btuodis t btcrh t btco t btcodis t bts t bth t btcp
3-30 dc and switching characteristics lattice semiconductor latticeecp/ ec family data sheet switching test conditions figure 3-21 shows the output test load that is used for ac testing. the specific values for resistance, capacitance, voltage, and other test conditions are shown in table 3-6. figure 3-21. output test load, lvttl and lvcmos standards table 3-6. test fixture required components, non-terminated interfaces test condition r 1 c l timing ref. v t lv t t l a n d o t h e r lv c m o s s e t t i n g s ( l - > h , h - > l ) f 0pf lv c m o s 3 . 3 = 1 . 5 v lv c m o s 2 . 5 = v ccio /2 lv c m o s 1 . 8 = v ccio /2 lv c m o s 1 . 5 = v ccio /2 lv c m o s 1 . 2 = v ccio /2 lv c m o s 2 . 5 i / o ( z - > h ) 188 ? 0pf v ccio /2 v ol lv c m o s 2 . 5 i / o ( z - > l ) v ccio /2 v oh lv c m o s 2 . 5 i / o ( h - > z ) v oh - 0.15 v ol lv c m o s 2 . 5 i / o ( l - > z ) v ol + 0.15 v oh note: output test conditions for all other interf aces are determined by the respective standards. dut v t r1 cl* test point *cl includes test fixture and probe capacitance
www.latticesemi.com 4-1 pinout information_02.5 november 2007 data sheet ?2007 lattice semiconductor corp. all lattice trademarks, registered trademarks, patents, and disclaimers are as listed at www .latticesemi.com/legal. all other brand or product names are trademarks or registered trademarks of their respective holders. the specifications and information herein are subject to change without notice. signal descriptions signal name i/o description general purpose p[edge] [row/column number*]_[a/b] i/o [edge] indicates the edge of the device on which the pad is located. valid edge designations are l (left), b (bottom), r (right), t (top). [row/column number] indicates the pfu row or the column of the device on which the pic exists. when edge is t (top) or (bottom), only need to specify row number. when edge is l (left) or r (right), only need to specify col- umn number. [a/b] indicates the pio within the pi c to which the pad is connected. some of these user-programmable pins are shared with special function pins. these pin when not used as special purpose pins can be programmed as i/os for user logic. during configuration the user-programmable i/os are tri-stated with an inter- nal pull-up resistor enabled. if any pi n is not used (or not bonded to a pack- age pin), it is also tri-stated with an internal pull-up resistor enabled after configuration. gsrn i global reset signal (activ e low). any i/o pin can be gsrn. nc no connect. gnd ground. dedicated pins. v cc ?ower supply pins for core logic. dedicated pins. v ccaux auxiliary power supply pin. it powers al l the differential and referenced input buffers. dedicated pins. v cciox ?ower supply pins for i/o bank x. dedicated pins. v ref1_x, v ref2_x reference supply pins for i/o bank x. pre-determined pins in each bank are assigned as v ref inputs. when not used, they may be used as i/o pins. xres 10k ohm +/-1% resistor must be connected between this pad and ground. v ccpll power supply pin for pll. t applicable to ecp/ec33 device. pll and clock functions (used as user programmable i/o pins when not in use for pll or clock pins) [loc][num]_pll[t, c]_in_a i reference clock (pll) input pads: ulm, llm, urm, lrm, num = row from center, t = true and c = complement, index a,b,c...at each side. [loc][num]_pll[t, c]_fb_a i optional feedback (pll) input pads: ulm, llm, urm, lrm, num = row from center, t = true and c = complement, index a,b,c...at each side. pclk[t, c]_[n: 0]_[3:0] i primary clock pads, t = true and c = complement, n per side, indexed by bank and 0,1,2,3 within bank. [loc]dqs[num] i dqs input pads: t (top), r (right), b (bottom), l (left), dqs, num = ball function number. any pad ca n be configured to be output. test and programming (dedicated pins) tms i test mode select input, used to contro l the 1149.1 state machine. pull-up is enabled during configuration. tck i te s t c l o ck i n p u t p i n , u s e d t o c l o ck t h e 1 1 4 9 . 1 s t a t e m a c h i n e . n o p u l l - u p enabled. latticeecp/ec family data sheet pinout information
4-2 pinout information lattice semiconductor latticeecp/ ec family data sheet tdi i test data in pin. used to load data into device using 1149.1 state machine. after power-up, this tap port can be activated for configuration by sending appropriate command. (note: once a co nfiguration port is selected it is locked. another configuration port ca nnot be selected until the power-up sequence). pull-up is enabled during configuration. tdo o output pin. test data out pin used to shift data out of device using 1149.1. v ccj ? ccj - the power supply pin for jtag test access port. configuration pads (used during sysconfig) cfg[2:0] i mode pins used to specify configuration modes values latched on rising edge of initn. during configuration, a pul l-up is enabled. these are dedicated pins. initn i/o open drain pin. indicates the fpga is ready to be configured. during config- uration, a pull-up is enabled. it is a dedicated pin. programn i initiates configuration sequence when asserted low. this pin always has an active pull-up. this is a dedicated pin. done i/o open drain pin. indicates that the c onfiguration sequence is complete, and the startup sequence is in progress. this is a dedicated pin. cclk i/o configuration clock for configuring an fpga in sysconfig mode. busy/sispi i/o read control comm and in spi3 or spix mode. csn i sysconfig chip select (active low). du ring configuration, a pull-up is enabled. cs1n i sysconfig chip select (active low). du ring configuration, a pull-up is enabled. writen i write data on parallel port (active low). d[7:0]/spid[0:7] i/o sysconfig port data i/o. dout/cson o output for serial confi guration data (rising edg e of cclk) when using sys- config port. di/csspin i/o input for serial configuration data (clocked with cclk) when using syscon- fig port. during configuration, a pull-up is enabled. output when used in spi/spix modes. signal descriptions (cont.) signal name i/o description
4-3 pinout information lattice semiconductor latticeecp/ ec family data sheet pics and ddr data (dq) pins associ ated with the ddr strobe (dqs) pin pics associated with dqs strobe pio within pic ddr strobe (dqs) and data (dq) pins p[edge] [n-4] adq bdq p[edge] [n-3] adq bdq p[edge] [n-2] adq bdq p[edge] [n-1] adq bdq p[edge] [n] a[edge]dqsn bdq p[edge] [n+1] adq bdq p[edge] [n+2] adq bdq p[edge] [n+3] adq bdq notes: 1. ??is a row/column pic number 2. the ddr interface is designed for memories th at support one dqs strobe per eight bits of data. in some packages, all the potential ddr data (dq) pins may not be available. 3. pic numbering definitions are provided in the ?ignal names?column of the signal descrip- tions table.
4-4 pinout information lattice semiconductor latticeecp/ ec family data sheet pin information summary lfec1 lfec3 lfecp6/ec6 lfecp/ec10 pin type 100- tqfp 144- tqfp 208- pqfp 100- tqfp 144- tqfp 208- pqfp 256- fpbga 144- tqfp 208- pqfp 256- fpbga 484- fpbga 208- pqfp 256- fpbga 484- fpbga single ended user  i/o 67 97 112 67 97 145 160 97 147 195 224 147 195 288 differential pair user i/o 29 46 56 29 46 72 80 46 72 97 112 72 97 144 configu- ration dedicated 13 13 13 13 13 13 13 13 13 13 13 13 13 13 muxed 48 48 48 48 48 48 48 48 48 48 48 56 56 56 ta p 5 5 5 5 5 5 5 5 5 5 5 5 5 5 dedicated (total  without supplies) 80 110 160 80 110 160 208 110 160 208 373 160 208 373 v cc 2332331044102061020 v ccaux 222444 4 24 2124 212 v ccpll 000000 0 00 0 0 0 0 0 v ccio bank0 1 2 2 1 2 3 2 2 3 2 4 3 2 4 bank1 1 2 2 1 2 2 2 2 2 2 4 2 2 4 bank2 1 1 1 2 2 2 2 1 2 2 4 2 2 4 bank3 1 2 2 1 2 2 2 2 2 2 4 2 2 4 bank4 1 2 2 1 2 2 2 2 2 2 4 2 2 4 bank5 1 2 2 1 2 2 2 2 3 2 4 3 2 4 bank6 1 2 2 1 2 2 2 2 2 2 4 2 2 4 bank7 1 1 1 2 2 2 2 1 2 2 4 2 2 4 gnd, gnd0-gnd7 8 13 13 8 13 16 20 14 18 20 44 20 20 44 nc 0 2 51 0 2 9 35 0 4 0 139 0 0 75 single ended/ differen- tial i/o pair per bank bank 0 11/5 14/7 16/8 11/5 14/7 26/13 32/1 614/726/1332/1632/1626/1332/1648/24 bank 1 11/5 13/6 16/8 11/5 13/6 16/8 1 6/8 13/6 17/8 18/9 3 2/16 17/8 18/9 32/16 bank 2 3/1 8/4 8/4 3/1 8/4 14/7 16/ 88/414/716/816/814/716/832/16 bank 3 8/4 13/6 16/8 8/4 13/6 16/8 16/8 1 3/6 16/8 32/16 32/16 16/8 32/16 32/16 bank 4 12/4 14/6 16/8 12/4 14/6 16/8 1 6/8 14/6 17/8 17/8 3 2/16 17/8 17/8 32/16 bank 5 9/4 13/6 16/8 9/4 13/6 26/13 32/1 613/626/1332/1632/1626/1332/1648/24 bank 6 5/2 14/7 16/8 5/2 14/7 16/8 16/8 1 4/7 16/8 32/16 32/16 16/8 32/16 32/16 bank 7 8/4 8/4 8/4 8/4 8/4 15/7 16/ 88/415/716/816/815/716/832/16 v ccj 111111 1 11 1 1 1 1 1 note: during configuration the user-programmable i/os are tri-stat ed with an internal pull-up resistor enabled. if any pin is n ot used (or not bonded to a package pin), it is also tri-stated with an in ternal pull-up resistor en abled after configuration.
4-5 pinout information lattice semiconductor latticeecp/ ec family data sheet pin information summary (cont.) lfecp/ec15 lfecp20/ec20 lfecp/ec33 pin type 256-fpbga 484-fpbga 484-fp bga 672-fpbga 484-fpbga 672-fpbga single ended user i/o 195 352 360 400 360 496 differential pair user i/o 97 176 180 200 180 248 configuration dedicated 13 13 13 13 13 13 muxed 56 56 56 56 56 56 ta p 5 5 5 5 5 5 dedicated (total without supplies) 208 373 373 509 373 509 v cc 10 20 20 32 16 28 v ccaux 21212201220 v ccpll 000044 v ccio bank0 2 4 4 6 4 6 bank1 2 4 4 6 4 6 bank2 2 4 4 6 4 6 bank3 2 4 4 6 4 6 bank4 2 4 4 6 4 6 bank5 2 4 4 6 4 6 bank6 2 4 4 6 4 6 bank7 2 4 4 6 4 6 gnd, gnd0-gnd7 20 44 44 63 44 63 nc 0 11 3 96 3 0 single ended/ differential i/o pair per bank bank0 32/16 48/24 48/24 64/32 48/24 64/32 bank1 18/9 48/24 48/24 48/24 48/24 64/32 bank2 16/8 40/20 40/20 40/20 40/20 56/28 bank3 32/16 40/20 44/22 48/24 44/22 64/32 bank4 17/8 48/24 48/24 48/24 48/24 64/32 bank5 32/16 48/24 48/24 64/32 48/24 64/32 bank6 32/16 40/20 44/22 48/24 44/22 64/32 bank7 16/8 40/20 40/20 40/20 40/20 56/28 v ccj 111111 note: during configuration the user-programmable i/os are tri-st ated with an internal pull-up resistor enabled. if any pin is n ot used (or not bonded to a package pin), it is also tri-stated with an internal pull-up resistor enabled after configuration.
4-6 pinout information lattice semiconductor latticeecp/ ec family data sheet power supply and nc connections signals 100 tqfp 144 tq fp 208 pqfp 256 fpbga vcc 12, 64 ec1, ec3: 13, 92, 99 ecp/ec6: 11, 13, 92, 99 ec1, ec3: 26, 128, 135  ecp/ec6: 24, 26, 128, 135  ecp/ec10: 5, 24, 26, 128, 135, 152 e12, e5, e8, m12, m5, m9, f6, f11, l11, l6 vccio0 100 136, 143 ec1: 187, 208  ec3, ecp/ec6, ecp/ ec10: 187, 197, 208 f7, f8 vccio1 86 110, 125 157, 176 f9, f10 vccio2 73 108 ec1: 155 ec3, ecp/ec6, ecp/ ec10: 145, 155 g11, h11 vccio3 56 73, 84 106, 120 j11, k11 vccio4 38 55, 71 85, 104 l9, l10 vccio5 26 38, 44 ec1: 53, 74 ec2, ecp/ec6, ecp/ ec10: 53, 64, 74 l7, l8 vccio6 24 24, 36 37, 51 j6, k6 vccio7 2 1 ec1: 2 ec3, ecp/ec6, ecp/ ec10: 2, 13 g6, h6 vccj 18 19 32 l4 vccaux 37, 87 54, 126 ec1: 84, 177  ec3, ecp/ec6, ecp/ ec10: 22, 84, 136, 177 b15, r2 vccpll gnd, gnd0-gnd7 1, 14, 25, 35, 51, 68, 74, 89 ec1, ec3: 15, 28, 37, 52, 63, 72, 80, 96, 98, 109, 117, 128, 144 ecp/ec6: 12, 15, 28, 37, 52, 63, 72, 80, 96, 98, 109, 117, 128, 144 ec1: 1, 28, 41, 52, 82, 93, 105, 116, 132, 134, 156, 168, 179 ec3: 1, 28, 41, 52, 72, 82, 93, 105, 116, 132, 134, 138, 156, 168, 179, 189 ecp/ec6: 1, 18, 25, 28, 41, 52, 72, 82, 93, 105, 116, 132, 134, 138, 156, 168, 179, 189 ecp/ec10: 1, 6, 18, 25, 28, 41, 52, 72, 82, 93, 105, 116, 132, 134, 138, 151, 156, 168, 179, 189 a1, a16, g10, g7, g8, g9, h10, h7, h8, h9, j10, j7, j8, j9, k10, k7, k8, k9, t1, t16 nc ec1, ec3: 11, 12 ecp6/ec6: none ec1: 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 18, 22, 24, 25, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 72, 103, 136, 138, 144, 145, 146, 147, 148, 149, 150, 151, 152, 158, 189, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207 ec3: 5, 6, 18, 24, 25, 103, 151, 152, 158 ecp/ec6: 5, 6, 151, 152 ecp/ec10: none ec3: g5, h5, f2, f1, h4, h3, g2, g1, j4, j3, j5, k5, h2, h1, j2, j1, r12, h16, h15, g16, g15, k12, j12, j14, j15, f16, f15, j13, h13, h14, g14, e16, e15, b13, c13 ecp/ec10: none ecp/ec15: none
4-7 pinout information lattice semiconductor latticeecp/ ec family data sheet power supply and nc connections (cont.) signals 484 fpbga 672 fpbga vcc j16, j7, k16, k17, k6, k7, l17, l6, m17, m6, n16, n17, n6, n7, p16, p7, j6, j17, p6, p17 h10, h11, h16, h17, h18, h19, h8, h9, j18, j9, k8, l19, m19, n7, r20, r7, t19, v18, v8, v9, w10, w11, w16, w17, w18, w19, w8, w9, k19, l8, u19, u8 vccio0 g11, h10, h11, h9 h12, h13, j10, j11, j12, j13 vccio1 g12, h12, h13, h14 h14, h15, j14, j15, j16, j17 vccio2 j15, k15, l15, l16 k17, k18, l18, m18, n18, n19 vccio3 m15, m16, n15, p15 p18, p19, r18, r19, t18, u18 vccio4 r12, r13, r14, t12 v14 , v15, v16, v17, w14, w15 vccio5 r10, r11, r9, t11 v10, v11, v12, v13, w12, w13 vccio6 m7, m8, n8, p8 p8, p9, r8, r9, t9, u9 vccio7 j8, k8, l7, l8 k9, l9, m8, m9, n8, n9 vccj u2 u6 vccaux g15, g16, g7, g8, h16, h7, r16, r7, t15, t16, t7, t8 g13, h20, h7, j19, j8, k7, l20, m20, m7, n20, p20, p7, t20, t7, t8, v19, v7, w20, y13, y7 vccpll ecp/ec20: none ecp/ec33: j6, j17, p6, p17 ecp/ec20 : none ecp/ec33 : k19, l8, u19, u8 gnd, gnd0-gnd7 a1, a22, ab1, ab22, h15, h8, j10, j1 1, j12, j13, j14, j9, k10, k11, k12, k13, k14, k9, l10, l11, l12, l13, l14, l9, m10, m11, m12, m13, m14, m9, n10, n11, n12, n13, n1 4, n9, p10, p11, p12, p13, p14, p9, r15, r8 k10, k11, k12, k13, k14, k15, k16, l10, l11, l12, l13, l14, l15, l16, l17, m10, m11, m12, m13, m14, m15, m16, m17, n10, n11, n12, n13, n14, n15, n16, n17, p10, p11, p12, p13, p14, p15, p16, p17, r10, r11, r12, r13, r14, r15, r16, r17, t10, t11, t12, t13, t14, t15, t16, t17, u10, u11, u12, u13, u14, u15, u16, u17 nc ecp/ec6: c3, b2, e5, f5, d3, c2, f4, g4, e3, d2, b1, c1, f3, e2, g5, h6, g3, h4, j5, h5, f2, f1, e1, d1, r6, p5, p3, p4, r1, r2, r5, r4, t1, t2, r3, t3, v7, t6, v8, u7, w5, u6, aa3, ab3, y6, v6, aa5, w6, y5, y4, aa4, ab4, w16, u15, v16, u16, y17, v17, ab20, aa19, y16, w17, aa20, y19, y18, w18, t17, u17, t18, r17, r19, r18, u22, t22, r21, r22, p20, n20, p19, p18, e21, d22, g21, g20, j18, h19, j19, h20, h17, h18, d21, c22, g19, g18, f20, f19, e20, d20, c21, c20, f18, e18, b22, b21, g17, f17, d18, c18, c19, b20, d17, c16, b19, a20, e17, c17, f16, e16, f15, d16, a4, b4, c4, c5, d6, b5, e6, c6, a3, b3, f6, d5, f7, e8, g6, e7, a2, ab2, a21 ecp/ec10: g5, h6, g3, h4, j5, h5, f2, f1, r6, p5, p3, p4, r2, r1, r5, r4 , t1, t2, r3, t3, w16, u15, v16, u16, y17, v17, ab20, aa19, y16, w17, aa20, y19, y18, w18, t17, u17, t18, r17, r19, r18, u22, t22, r21, r22, p20, n20, p19, p18, g21, g20, j18, h19, j19, h20, h17, h18, g17, f17, d18, c18, c19, b20, d17, c16, b19, a20, e17, c17, f16, e16, f15, d16, a2, ab2, a21 ecp/ec15: t1, t2, r3, t3, t18, r17, r19, r18, a2, ab2, a21 ecp/ec20: a2, ab2, a21 ecp/ec33: a2, ab2, a21 ecp/ec20: e5, d5, f4, f5, c3 , d3, c2, b2, h6, j7, g5, h5, h3, j3, h2, j2, aa2, aa3, w5, y5, y6, w7, aa4, ab3, ac2, ac3, aa5, ab5, ad3, ad2, ae1, ad1, ad19, ad20 , ac19, ab19, ad21, ac20, af25, ae25, ab21, ab20, ae24, ad23, ad22, ac21, ac22, ab22, ad24, ad25, ae26, ad26, y20, y19, aa23, aa22, ab23, ab24, y21, aa21, y23, y22, aa24, y24, j21, j22, j23, h22, g26, f26, e26, e25, f24, f23, e24, d24, e22, f22, e21, d22, g20, f20, d21, c21, c23, c22, b23, c24, d20, e19, b25, b24, b26, a25, c20, c19 ecp/ec33: none
4-8 pinout information lattice semiconductor latticeecp/ ec family data sheet lfec1, lfec3 logic signal connections: 100 tqfp pin number lfec1 lfec3 pin function bank lvds dual function pin function bank lvds dual function 1* gnd0 gnd7 - gnd0 gnd7 - 2vccio77 vccio77 3pl2a7tvref2_7pl2a7tvref2_7 4pl2b7cvref1_7pl2b7cvref1_7 5pl3a7t pl7a7t 6pl3b7c pl7b7c 7pl4a7t pl8a7t 8pl4b7c pl8b7c 9pl5a7tpclkt7_0pl9a7tpclkt7_0 10 pl5b 7 c pclkc7_0 pl9b 7 c pclkc7_0 11 xres 6 xres 6 12 vcc - vcc - 13 tck 6 tck 6 14 gnd - gnd - 15 tdi 6 tdi 6 16 tms 6 tms 6 17 tdo 6 tdo 6 18 vccj 6 vccj 6 19 pl7a 6 t llm0_pllt_in_a pl11a 6 t lum0_pllt_in_a 20 pl7b 6 c llm0_pllc_in_a pl11b 6 c lum0_pllc_in_a 21 pl8a 6 t llm0_pllt_fb_a pl12a 6 t lum0_pllt_fb_a 22 pl8b 6 c llm0_pllc_fb_a pl12b 6 c lum0_pllc_fb_a 23 pl14a 6 vref1_6 pl18a 6 vref1_6 24 vccio6 6 vccio6 6 25* gnd5 gnd6 - gnd5 gnd6 - 26 vccio5 5 vccio5 5 27 pb2a 5 t pb10a 5 t 28 pb2b 5 c pb10b 5 c 29 pb3a 5 t pb11a 5 t 30 pb3b 5 c pb11b 5 c 31 pb6a 5 bdqs6 pb14a 5 bdqs14 32 pb8a 5 t vref2_5 pb16a 5 t vref2_5 33 pb8b 5 c vref1_5 pb16b 5 c vref1_5 34 pb9a 5 t pclkt5_0 pb17a 5 t pclkt5_0 35 gnd5 5 gnd5 5 36 pb9b 5 c pclkc5_0 pb17b 5 c pclkc5_0 37 vccaux - vccaux - 38 vccio4 4 vccio4 4 39 pb10a 4 t writen pb18a 4 t writen 40 pb10b 4 c cs1n pb18b 4 c cs1n
4-9 pinout information lattice semiconductor latticeecp/ ec family data sheet 41 pb11a 4 t vref1_4 pb19a 4 t vref1_4 42 pb11b 4 c csn pb19b 4 c csn 43 pb12b 4 d0/spid7 pb20b 4 d0/spid7 44 pb13a 4 t d2/spid5 pb21a 4 t d2/spid5 45 pb13b 4 c d1/spid6 pb21b 4 c d1/spid6 46 pb14a 4 t bdqs14 pb22a 4 t bdqs22 47 pb14b 4 c d3/spid4 pb22b 4 c d3/spid4 48 pb15b 4 d4/spid3 pb23b 4 d4/spid3 49 pb16b 4 d5/spid2 pb24b 4 d5/spid2 50 pb17b 4 d6/spid1 pb25b 4 d6/spid1 51* gnd3 gnd4 - gnd3 gnd4 - 52 pr10b 3 c rlm0_pllc_fb_a pr14b 3 c rlm0_pllc_fb_a 53 pr10a 3 t rlm0_pllt_fb_a pr14a 3 t rlm0_pllt_fb_a 54 pr9b 3 c rlm0_pllc_in_a pr13b 3 c rlm0_pllc_in_a 55 pr9a 3 t rlm0_pllt_in_a pr13a 3 t rlm0_pllt_in_a 56 vccio3 3 vccio3 3 57 pr8b 3 c di/csspin pr12b 3 c di/csspin 58 pr8a 3 t dout/cson pr12a 3 t dout/cson 59 pr7b 3 c busy/sispi pr11b 3 c busy/sispi 60 pr7a 3 t d7/spid0 pr11a 3 t d7/spid0 61 cfg2 3 cfg2 3 62 cfg1 3 cfg1 3 63 cfg0 3 cfg0 3 64 vcc - vcc - 65 programn 3 programn 3 66 cclk 3 cclk 3 67 initn 3 initn 3 68 gnd - gnd - 69 done 3 done 3 70 pr5b 2 c pclkc2_0 pr9b 2 c pclkc2_0 71 pr5a 2 t pclkt2_0 pr9a 2 t pclkt2_0 72 pr2b 2 vref1_2 pr2b 2 vref1_2 73 vccio2 2 vccio2 2 74 gnd2 2 gnd2 2 75 pt17b 1 c pt25b 1 c 76 pt17a 1 t pt25a 1 t 77 pt14b 1 c pt22b 1 c 78 pt14a 1 t tdqs14 pt22a 1 t tdqs22 79 pt13a 1 pt21a 1 80 pt12b 1 c pt20b 1 c 81 pt12a 1 t pt20a 1 t lfec1, lfec3 logic signal co nnections: 100 tqfp (cont.) pin number lfec1 lfec3 pin function bank lvds dual function pin function bank lvds dual function
4-10 pinout information lattice semiconductor latticeecp/ ec family data sheet 82 pt11b 1 c vref2_1 pt19b 1 c vref2_1 83 pt11a 1 t vref1_1 pt19a 1 t vref1_1 84 pt10b 1 c pt18b 1 c 85 pt10a 1 t pt18a 1 t 86 vccio1 1 vccio1 1 87 vccaux - vccaux - 88 pt9b 0 c pclkc0_0 pt17b 0 c pclkc0_0 89 gnd0 0 gnd0 0 90 pt9a 0 t pclkt0_0 pt17a 0 t pclkt0_0 91 pt8b 0 c vref1_0 pt16b 0 c vref1_0 92 pt8a 0 t vref2_0 pt16a 0 t vref2_0 93 pt7b 0 pt15b 0 94 pt6b 0 c pt14b 0 c 95 pt6a 0 t tdqs6 pt14a 0 t tdqs14 96 pt4b 0 c pt12b 0 c 97 pt4a 0 t pt12a 0 t 98 pt2b 0 c pt10b 0 c 99 pt2a 0 t pt10a 0 t 100 vccio0 0 vccio0 0 *double bonded to the pin. lfec1, lfec3 logic signal co nnections: 100 tqfp (cont.) pin number lfec1 lfec3 pin function bank lvds dual function pin function bank lvds dual function
4-11 pinout information lattice semiconductor latticeecp/ ec family data sheet lfec1, lfec3, lfecp/ec6 logic signal connections: 144 tqfp pin number lfec1 lfec3 lfecp6/ec6 pin function bank lvds dual function pin function bank lv ds dual function pin function bank lvds dual function 1vccio77 vccio77 vccio77 2pl2a7tvref2_7 pl2a7tvref2_7 pl2a7tvref2_7 3pl2b7cvref1_7 pl2b7cvref1_7 pl2b7cvref1_7 4pl3a7t pl7a7t pl7a7t 5pl3b7c pl7b7c pl7b7c 6pl4a7t pl8a7t pl8a7t 7pl4b7c pl8b7c pl8b7c 8pl5a7tpclkt7_0 pl9a7tpclkt7_0 pl9a7tpclkt7_0 9pl5b7cpclkc7_0 pl9b7cpclkc7_0 pl9b7cpclkc7_0 10 xres 6 xres 6 xres 6 11 nc - nc - vcc - 12 nc - nc - gnd - 13 vcc - vcc - vcc - 14 tck 6 tck 6 tck 6 15 gnd - gnd - gnd - 16 tdi 6 tdi 6 tdi 6 17 tms 6 tms 6 tms 6 18 tdo 6 tdo 6 tdo 6 19 vccj 6 vccj 6 vccj 6 20 pl7a 6 t llm0_pllt_in_a pl11a 6 t llm0_pllt_in_a pl20a 6 t llm0_pllt_in_a 21 pl7b 6 c llm0_pllc_in_a pl11b 6 c llm0_pllc_in_a pl20b 6 c llm0_pllc_in_a 22 pl8a 6 t llm0_pllt_fb_a pl12a 6 t llm0_pllt_fb_a pl21a 6 t llm0_pllt_fb_a 23 pl8b 6 c llm0_pllc_fb_a pl12b 6 c llm0_pllc_fb_a pl21b 6 c llm0_pllc_fb_a 24 vccio6 6 vccio6 6 vccio6 6 25 pl9a 6 t pl13a 6 t pl22a 6 t 26 pl9b 6 c pl13b 6 c pl22b 6 c 27 pl10a 6 t pl14a 6 t pl23a 6 t 28 gnd6 6 gnd6 6 gnd6 6 29 pl10b 6 c pl14b 6 c pl23b 6 c 30 pl11a 6 t ldqs11 pl15a 6 t ldqs15 pl24a 6 t ldqs24 31 pl11b 6 c pl15b 6 c pl24b 6 c 32 pl12a 6 t pl16a 6 t pl25a 6 t 33 pl12b 6 c pl16b 6 c pl25b 6 c 34 pl14a 6 t vref1_6 pl18a 6 t vref1_6 pl27a 6 t vref1_6 35 pl14b 6 c vref2_6 pl18b 6 c vref2_6 pl27b 6 c vref2_6 36 vccio6 6 vccio6 6 vccio6 6 37* gnd5 gnd6 - gnd5 gnd6 - gnd5 gnd6 - 38 vccio5 5 vccio5 5 vccio5 5 39 pb2a 5 t pb10a 5 t pb10a 5 t 40 pb2b 5 c pb10b 5 c pb10b 5 c 41 pb3a 5 t pb11a 5 t pb11a 5 t 42 pb3b 5 c pb11b 5 c pb11b 5 c 43 pb5b 5 pb13b 5 pb13b 5 44 vccio5 5 vccio5 5 vccio5 5 45 pb6a 5 t bdqs6 pb14a 5 t bdqs14 pb14a 5 t bdqs14 46 pb6b 5 c pb14b 5 c pb14b 5 c 47 pb7a 5 t pb15a 5 t pb15a 5 t 48 pb7b 5 c pb15b 5 c pb15b 5 c 49 pb8a 5 t vref2_5 pb16a 5 t vref2_5 pb16a 5 t vref2_5
4-12 pinout information lattice semiconductor latticeecp/ ec family data sheet 50 pb8b 5 c vref1_5 pb16b 5 c vref1_5 pb16b 5 c vref1_5 51 pb9a 5 t pclkt5_0 pb17a 5 t pclkt5_0 pb17a 5 t pclkt5_0 52 gnd5 5 gnd5 5 gnd5 5 53 pb9b 5 c pclkc5_0 pb17b 5 c pclkc5_0 pb17b 5 c pclkc5_0 54 vccaux - vccaux - vccaux - 55 vccio4 4 vccio4 4 vccio4 4 56 pb10a 4 t writen pb18a 4 t writen pb18a 4 t writen 57 pb10b 4 c cs1n pb18b 4 c cs1n pb18b 4 c cs1n 58 pb11a 4 t vref1_4 pb19a 4 t vref1_4 pb19a 4 t vref1_4 59 pb11b 4 c csn pb19b 4 c csn pb19b 4 c csn 60 pb12a 4 t vref2_4 pb20a 4 t vref2_4 pb20a 4 t vref2_4 61 pb12b 4 c d0/spid7 pb20b 4 c d0/spid7 pb20b 4 c d0/spid7 62 pb13a 4 t d2/spid5 pb21a 4 t d2/spid5 pb21a 4 t d2/spid5 63 gnd4 4 gnd4 4 gnd4 4 64 pb13b 4 c d1/spid6 pb21b 4 c d1/spid6 pb21b 4 c d1/spid6 65 pb14a 4 t bdqs14 pb22a 4 t bdqs22 pb22a 4 t bdqs22 66 pb14b 4 c d3/spid4 pb22b 4 c d3/spid4 pb22b 4 c d3/spid4 67 pb15a 4 t pb23a 4 t pb23a 4 t 68 pb15b 4 c d4/spid3 pb23b 4 c d4/spid3 pb23b 4 c d4/spid3 69 pb16b 4 d5/spid2 pb24b 4 d5/spid2 pb24b 4 d5/spid2 70 pb17b 4 d6/spid1 pb25b 4 d6/spid1 pb25b 4 d6/spid1 71 vccio4 4 vccio4 4 vccio4 4 72* gnd3 gnd4 - gnd3 gnd4 - gnd3 gnd4 - 73 vccio3 3 vccio3 3 vccio3 3 74 pr14a 3 vref1_3 pr18a 3 vref1_3 pr27a 3 vref1_3 75 pr12b 3 c pr16b 3 c pr25b 3 c 76 pr12a 3 t pr16a 3 t pr25a 3 t 77 pr11b 3 c pr15b 3 c pr24b 3 c 78 pr11a 3 t rdqs11 pr15a 3 t rdqs15 pr24a 3 t rdqs24 79 pr10b 3 c rlm0_pllc_fb_a pr14b 3 c rlm0_pllc_fb_a pr23b 3 c rlm0_pllc_fb_a 80 gnd3 3 gnd3 3 gnd3 3 81 pr10a 3 t rlm0_pllt_fb_a pr14a 3 t rlm0_pllt_fb_a pr23a 3 t rlm0_pllt_fb_a 82 pr9b 3 c rlm0_pllc_in_a pr13b 3 c rlm0_pllc_in_a pr22b 3 c rlm0_pllc_in_a 83 pr9a 3 t rlm0_pllt_in_a pr13a 3 t rlm0_pllt_in_a pr22a 3 t rlm0_pllt_in_a 84 vccio3 3 vccio3 3 vccio3 3 85 pr8b 3 c di/csspin pr12b 3 c di/csspin pr21b 3 c di/csspin 86 pr8a 3 t dout/cson pr12a 3 t dout/cson pr21a 3 t dout/cson 87 pr7b 3 c busy/sispi pr11b 3 c busy/sispi pr20b 3 c busy/sispi 88 pr7a 3 t d7/spid0 pr11a 3 t d7/spid0 pr20a 3 t d7/spid0 89 cfg2 3 cfg2 3 cfg2 3 90 cfg1 3 cfg1 3 cfg1 3 91 cfg0 3 cfg0 3 cfg0 3 92 vcc - vcc - vcc - 93 programn 3 programn 3 programn 3 94 cclk 3 cclk 3 cclk 3 95 initn 3 initn 3 initn 3 96 gnd - gnd - gnd - 97 done 3 done 3 done 3 98 gnd - gnd - gnd - lfec1, lfec3, lfecp/ec6 logic sign al connections: 144 tqfp (cont.) pin number lfec1 lfec3 lfecp6/ec6 pin function bank lvds dual function pin function bank lv ds dual function pin function bank lvds dual function
4-13 pinout information lattice semiconductor latticeecp/ ec family data sheet 99 vcc - vcc - vcc - 100 pr5b 2 c pclkc2_0 pr9b 2 c pclkc2_0 pr9b 2 c pclkc2_0 101 pr5a 2 t pclkt2_0 pr9a 2 t pclkt2_0 pr9a 2 t pclkt2_0 102 pr4b 2 c pr8b 2 c pr8b 2 c 103 pr4a 2 t pr8a 2 t pr8a 2 t 104 pr3b 2 c pr7b 2 c pr7b 2 c 105 pr3a 2 t pr7a 2 t pr7a 2 t 106 pr2b 2 c vref1_2 pr2b 2 c vref1_2 pr2b 2 c vref1_2 107 pr2a 2 t vref2_2 pr2a 2 t vref2_2 pr2a 2 t vref2_2 108 vccio2 2 vccio2 2 vccio2 2 109* gnd1 gnd2 - gnd1 gnd2 - gnd1 gnd2 - 110 vccio1 1 vccio1 1 vccio1 1 111 pt17b 1 c pt25b 1 c pt25b 1 c 112 pt17a 1 t pt25a 1 t pt25a 1 t 113 pt15a 1 pt23a 1 pt23a 1 114 pt14b 1 c pt22b 1 c pt22b 1 c 115 pt14a 1 t tdqs14 pt22a 1 t tdqs22 pt22a 1 t tdqs22 116 pt13b 1 c pt21b 1 c pt21b 1 c 117 gnd1 1 gnd1 1 gnd1 1 118 pt13a 1 t pt21a 1 t pt21a 1 t 119 pt12b 1 c pt20b 1 c pt20b 1 c 120 pt12a 1 t pt20a 1 t pt20a 1 t 121 pt11b 1 c vref2_1 pt19b 1 c vref2_1 pt19b 1 c vref2_1 122 pt11a 1 t vref1_1 pt19a 1 t vref1_1 pt19a 1 t vref1_1 123 pt10b 1 c pt18b 1 c pt18b 1 c 124 pt10a 1 t pt18a 1 t pt18a 1 t 125 vccio1 1 vccio1 1 vccio1 1 126 vccaux - vccaux - vccaux - 127 pt9b 0 c pclkc0_0 pt17b 0 c pclkc0_0 pt17b 0 c pclkc0_0 128 gnd0 0 gnd0 0 gnd0 0 129 pt9a 0 t pclkt0_0 pt17a 0 t pclkt0_0 pt17a 0 t pclkt0_0 130 pt8b 0 c vref1_0 pt16b 0 c vref1_0 pt16b 0 c vref1_0 131 pt8a 0 t vref2_0 pt16a 0 t vref2_0 pt16a 0 t vref2_0 132 pt7b 0 c pt15b 0 c pt15b 0 c 133 pt7a 0 t pt15a 0 t pt15a 0 t 134 pt6b 0 c pt14b 0 c pt14b 0 c 135 pt6a 0 t tdqs6 pt14a 0 t tdqs14 pt14a 0 t tdqs14 136 vccio0 0 vccio0 0 vccio0 0 137 pt5b 0 c pt13b 0 c pt13b 0 c 138 pt5a 0 t pt13a 0 t pt13a 0 t 139 pt4b 0 c pt12b 0 c pt12b 0 c 140 pt4a 0 t pt12a 0 t pt12a 0 t 141 pt2b 0 c pt10b 0 c pt10b 0 c 142 pt2a 0 t pt10a 0 t pt10a 0 t 143 vccio0 0 vccio0 0 vccio0 0 144* gnd0 gnd7 - gnd0 gnd7 - gnd0 gnd7 - *double bonded to the pin. lfec1, lfec3, lfecp/ec6 logic sign al connections: 144 tqfp (cont.) pin number lfec1 lfec3 lfecp6/ec6 pin function bank lvds dual function pin function bank lv ds dual function pin function bank lvds dual function
4-14 pinout information lattice semiconductor latticeecp/ ec family data sheet lfec1, lfec3 logic signal connections: 208 pqfp pin number lfec1 lfec3 pin function bank lvds dual function pin function bank lvds dual function 1* gnd0 gnd7 - gnd0 gnd7 - 2vccio77 vccio77 3pl2a7tvref2_7pl2a7tvref2_7 4pl2b7cvref1_7pl2b7cvref1_7 5nc- nc- 6nc- nc- 7nc- pl3b7 8nc- pl4a7t 9nc- pl4b7c 10 nc - pl5a 7 t 11 nc - pl5b 7 c 12 nc - pl6a 7 t ldqs6 13 nc - vccio7 7 14 nc - pl6b 7 c 15 pl3a 7 t pl7a 7 t 16 pl3b 7 c pl7b 7 c 17 pl4a 7 t pl8a 7 t 18 nc - nc - 19 pl4b 7 c pl8b 7 c 20 pl5a 7 t pclkt7_0 pl9a 7 t pclkt7_0 21 pl5b 7 c pclkc7_0 pl9b 7 c pclkc7_0 22 nc - vccaux - 23 xres 6 xres 6 24 nc - nc - 25 nc - nc - 26 vcc - vcc - 27 tck 6 tck 6 28 gnd - gnd - 29 tdi 6 tdi 6 30 tms 6 tms 6 31 tdo 6 tdo 6 32 vccj 6 vccj 6 33 pl7a 6 t llm0_pllt_in_a pl11a 6 t llm0_pllt_in_a 34 pl7b 6 c llm0_pllc_in_a pl11b 6 c llm0_pllc_in_a 35 pl8a 6 t llm0_pllt_fb_a pl12a 6 t llm0_pllt_fb_a 36 pl8b 6 c llm0_pllc_fb_a pl12b 6 c llm0_pllc_fb_a 37 vccio6 6 vccio6 6 38 pl9a 6 t pl13a 6 t 39 pl9b 6 c pl13b 6 c 40 pl10a 6 t pl14a 6 t 41 gnd6 6 gnd6 6 42 pl10b 6 c pl14b 6 c
4-15 pinout information lattice semiconductor latticeecp/ ec family data sheet 43 pl11a 6 t ldqs11 pl15a 6 t ldqs15 44 pl11b 6 c pl15b 6 c 45 pl12a 6 t pl16a 6 t 46 pl12b 6 c pl16b 6 c 47 pl13a 6 t pl17a 6 t 48 pl13b 6 c pl17b 6 c 49 pl14a 6 t vref1_6 pl18a 6 t vref1_6 50 pl14b 6 c vref2_6 pl18b 6 c vref2_6 51 vccio6 6 vccio6 6 52* gnd5 gnd6 - gnd5 gnd6 - 53 vccio5 5 vccio5 5 54 nc - pb2a 5 t 55 nc - pb2b 5 c 56 nc - pb3a 5 t 57 nc - pb3b 5 c 58 nc - pb4a 5 t 59 nc - pb4b 5 c 60 nc - pb5a 5 t 61 nc - pb5b 5 c 62 nc - pb6a 5 t bdqs6 63 nc - pb6b 5 c 64 nc - vccio5 5 65 pb2a 5 t pb10a 5 t 66 pb2b 5 c pb10b 5 c 67 pb3a 5 t pb11a 5 t 68 pb3b 5 c pb11b 5 c 69 pb4a 5 t pb12a 5 t 70 pb4b 5 c pb12b 5 c 71 pb5a 5 t pb13a 5 t 72 nc - gnd5 5 73 pb5b 5 c pb13b 5 c 74 vccio5 5 vccio5 5 75 pb6a 5 t bdqs6 pb14a 5 t bdqs14 76 pb6b 5 c pb14b 5 c 77 pb7a 5 t pb15a 5 t 78 pb7b 5 c pb15b 5 c 79 pb8a 5 t vref2_5 pb16a 5 t vref2_5 80 pb8b 5 c vref1_5 pb16b 5 c vref1_5 81 pb9a 5 t pclkt5_0 pb17a 5 t pclkt5_0 82 gnd5 5 gnd5 5 83 pb9b 5 c pclkc5_0 pb17b 5 c pclkc5_0 84 vccaux - vccaux - lfec1, lfec3 logic signal co nnections: 208 pqfp (cont.) pin number lfec1 lfec3 pin function bank lvds dual function pin function bank lvds dual function
4-16 pinout information lattice semiconductor latticeecp/ ec family data sheet 85 vccio4 4 vccio4 4 86 pb10a 4 t writen pb18a 4 t writen 87 pb10b 4 c cs1n pb18b 4 c cs1n 88 pb11a 4 t vref1_4 pb19a 4 t vref1_4 89 pb11b 4 c csn pb19b 4 c csn 90 pb12a 4 t vref2_4 pb20a 4 t vref2_4 91 pb12b 4 c d0/spid7 pb20b 4 c d0/spid7 92 pb13a 4 t d2/spid5 pb21a 4 t d2/spid5 93 gnd4 4 gnd4 4 94 pb13b 4 c d1/spid6 pb21b 4 c d1/spid6 95 pb14a 4 t bdqs14 pb22a 4 t bdqs22 96 pb14b 4 c d3/spid4 pb22b 4 c d3/spid4 97 pb15a 4 t pb23a 4 t 98 pb15b 4 c d4/spid3 pb23b 4 c d4/spid3 99 pb16a 4 t pb24a 4 t 100 pb16b 4 c d5/spid2 pb24b 4 c d5/spid2 101 pb17a 4 t pb25a 4 t 102 pb17b 4 c d6/spid1 pb25b 4 c d6/spid1 103 nc - nc - 104 vccio4 4 vccio4 4 105* gnd3 gnd4 - gnd3 gnd4 - 106 vccio3 3 vccio3 3 107 pr14b 3 c vref2_3 pr18b 3 c vref2_3 108 pr14a 3 t vref1_3 pr18a 3 t vref1_3 109 pr13b 3 c pr17b 3 c 110 pr13a 3 t pr17a 3 t 111 pr12b 3 c pr16b 3 c 112 pr12a 3 t pr16a 3 t 113 pr11b 3 c pr15b 3 c 114 pr11a 3 t rdqs11 pr15a 3 t rdqs15 115 pr10b 3 c rlm0_pllc_fb_a pr14b 3 c rlm0_pllc_fb_a 116 gnd3 3 gnd3 3 117 pr10a 3 t rlm0_pllt_fb_a pr14a 3 t rlm0_pllt_fb_a 118 pr9b 3 c rlm0_pllc_in_a pr13b 3 c rlm0_pllc_in_a 119 pr9a 3 t rlm0_pllt_in_a pr13a 3 t rlm0_pllt_in_a 120 vccio3 3 vccio3 3 121 pr8b 3 c di/csspin pr12b 3 c di/csspin 122 pr8a 3 t dout/cson pr12a 3 t dout/cson 123 pr7b 3 c busy/sispi pr11b 3 c busy/sispi 124 pr7a 3 t d7/spid0 pr11a 3 t d7/spid0 125 cfg2 3 cfg2 3 126 cfg1 3 cfg1 3 lfec1, lfec3 logic signal co nnections: 208 pqfp (cont.) pin number lfec1 lfec3 pin function bank lvds dual function pin function bank lvds dual function
4-17 pinout information lattice semiconductor latticeecp/ ec family data sheet 127 cfg0 3 cfg0 3 128 vcc - vcc - 129 programn 3 programn 3 130 cclk 3 cclk 3 131 initn 3 initn 3 132 gnd - gnd - 133 done 3 done 3 134 gnd - gnd - 135 vcc - vcc - 136 nc - vccaux - 137 pr5b 2 c pclkc2_0 pr9b 2 c pclkc2_0 138 nc - gnd2 2 139 pr5a 2 t pclkt2_0 pr9a 2 t pclkt2_0 140 pr4b 2 c pr8b 2 c 141 pr4a 2 t pr8a 2 t 142 pr3b 2 c pr7b 2 c 143 pr3a 2 t pr7a 2 t 144 nc - pr6b 2 c 145 nc - vccio2 2 146 nc - pr6a 2 t rdqs6 147 nc - pr5b 2 c 148 nc - pr5a 2 t 149 nc - pr4b 2 c 150 nc - pr4a 2 t 151 nc - nc - 152 nc - nc - 153 pr2b 2 c vref1_2 pr2b 2 c vref1_2 154 pr2a 2 t vref2_2 pr2a 2 t vref2_2 155 vccio2 2 vccio2 2 156* gnd1 gnd2 - gnd1 gnd2 - 157 vccio1 1 vccio1 1 158 nc - nc - 159 pt17b 1 c pt25b 1 c 160 pt17a 1 t pt25a 1 t 161 pt16b 1 c pt24b 1 c 162 pt16a 1 t pt24a 1 t 163 pt15b 1 c pt23b 1 c 164 pt15a 1 t pt23a 1 t 165 pt14b 1 c pt22b 1 c 166 pt14a 1 t tdqs14 pt22a 1 t tdqs22 167 pt13b 1 c pt21b 1 c 168 gnd1 1 gnd1 1 lfec1, lfec3 logic signal co nnections: 208 pqfp (cont.) pin number lfec1 lfec3 pin function bank lvds dual function pin function bank lvds dual function
4-18 pinout information lattice semiconductor latticeecp/ ec family data sheet 169 pt13a 1 t pt21a 1 t 170 pt12b 1 c pt20b 1 c 171 pt12a 1 t pt20a 1 t 172 pt11b 1 c vref2_1 pt19b 1 c vref2_1 173 pt11a 1 t vref1_1 pt19a 1 t vref1_1 174 pt10b 1 c pt18b 1 c 175 pt10a 1 t pt18a 1 t 176 vccio1 1 vccio1 1 177 vccaux - vccaux - 178 pt9b 0 c pclkc0_0 pt17b 0 c pclkc0_0 179 gnd0 0 gnd0 0 180 pt9a 0 t pclkt0_0 pt17a 0 t pclkt0_0 181 pt8b 0 c vref1_0 pt16b 0 c vref1_0 182 pt8a 0 t vref2_0 pt16a 0 t vref2_0 183 pt7b 0 c pt15b 0 c 184 pt7a 0 t pt15a 0 t 185 pt6b 0 c pt14b 0 c 186 pt6a 0 t tdqs6 pt14a 0 t tdqs14 187 vccio0 0 vccio0 0 188 pt5b 0 c pt13b 0 c 189 nc - gnd0 0 190 pt5a 0 t pt13a 0 t 191 pt4b 0 c pt12b 0 c 192 pt4a 0 t pt12a 0 t 193 pt3b 0 c pt11b 0 c 194 pt3a 0 t pt11a 0 t 195 pt2b 0 c pt10b 0 c 196 pt2a 0 t pt10a 0 t 197 nc - vccio0 0 198 nc - pt6b 0 c 199 nc - pt6a 0 t tdqs6 200 nc - pt5b 0 c 201 nc - pt5a 0 t 202 nc - pt4b 0 c 203 nc - pt4a 0 t 204 nc - pt3b 0 c 205 nc - pt3a 0 t 206 nc - pt2b 0 c 207 nc - pt2a 0 t 208 vccio0 0 vccio0 0 * double bonded to the pin. lfec1, lfec3 logic signal co nnections: 208 pqfp (cont.) pin number lfec1 lfec3 pin function bank lvds dual function pin function bank lvds dual function
4-19 pinout information lattice semiconductor latticeecp/ ec family data sheet lfecp/ec6, lfecp/ec10 logic signal connections: 208 pqfp pin number lfecp6/lfec6 lfecp10/lfec10 pin function bank lvds dual function pin function bank lvds dual function 1* gnd0 gnd7 - gnd0 gnd7 - 2vccio77 vccio77 3pl2a7tvref2_7pl2a7tvref2_7 4pl2b7cvref1_7pl2b7cvref1_7 5nc- vcc- 6nc- gnd- 7pl3b7 pl12b7 8pl4a7t pl13a7t 9pl4b7c pl13b7c 10 pl5a 7 t pl14a 7 t 11 pl5b 7 c pl14b 7 c 12 pl6a 7 t ldqs6 pl15a 7 t ldqs15 13 vccio7 7 vccio7 7 14 pl6b 7 c pl15b 7 c 15 pl7a 7 t pl16a 7 t 16 pl7b 7 c pl16b 7 c 17 pl8a 7 t pl17a 7 t 18 gnd7 7 gnd7 7 19 pl8b 7 c pl17b 7 c 20 pl9a 7 t pclkt7_0 pl18a 7 t pclkt7_0 21 pl9b 7 c pclkc7_0 pl18b 7 c pclkc7_0 22 vccaux - vccaux - 23 xres 6 xres 6 24 vcc - vcc - 25 gnd - gnd - 26 vcc - vcc - 27 tck 6 tck 6 28 gnd - gnd - 29 tdi 6 tdi 6 30 tms 6 tms 6 31 tdo 6 tdo 6 32 vccj 6 vccj 6 33 pl20a 6 t llm0_pllt_in_a pl29a 6 t llm0_pllt_in_a 34 pl20b 6 c llm0_pllc_in_a pl29b 6 c llm0_pllc_in_a 35 pl21a 6 t llm0_pllt_fb_a pl30a 6 t llm0_pllt_fb_a 36 pl21b 6 c llm0_pllc_fb_a pl30b 6 c llm0_pllc_fb_a 37 vccio6 6 vccio6 6 38 pl22a 6 t pl31a 6 t 39 pl22b 6 c pl31b 6 c 40 pl23a 6 t pl32a 6 t 41 gnd6 6 gnd6 6 42 pl23b 6 c pl32b 6 c
4-20 pinout information lattice semiconductor latticeecp/ ec family data sheet 43 pl24a 6 t ldqs24 pl33a 6 t ldqs33 44 pl24b 6 c pl33b 6 c 45 pl25a 6 t pl34a 6 t 46 pl25b 6 c pl34b 6 c 47 pl26a 6 t pl35a 6 t 48 pl26b 6 c pl35b 6 c 49 pl27a 6 t vref1_6 pl36a 6 t vref1_6 50 pl27b 6 c vref2_6 pl36b 6 c vref2_6 51 vccio6 6 vccio6 6 52* gnd5 gnd6 - gnd5 gnd6 - 53 vccio5 5 vccio5 5 54 pb2a 5 t pb2a 5 t 55 pb2b 5 c pb2b 5 c 56 pb3a 5 t pb3a 5 t 57 pb3b 5 c pb3b 5 c 58 pb4a 5 t pb4a 5 t 59 pb4b 5 c pb4b 5 c 60 pb5a 5 t pb5a 5 t 61 pb5b 5 c pb5b 5 c 62 pb6a 5 t bdqs6 pb6a 5 t bdqs6 63 pb6b 5 c pb6b 5 c 64 vccio5 5 vccio5 5 65 pb10a 5 t pb18a 5 t 66 pb10b 5 c pb18b 5 c 67 pb11a 5 t pb19a 5 t 68 pb11b 5 c pb19b 5 c 69 pb12a 5 t pb20a 5 t 70 pb12b 5 c pb20b 5 c 71 pb13a 5 t pb21a 5 t 72 gnd5 5 gnd5 5 73 pb13b 5 c pb21b 5 c 74 vccio5 5 vccio5 5 75 pb14a 5 t bdqs14 pb22a 5 t bdqs22 76 pb14b 5 c pb22b 5 c 77 pb15a 5 t pb23a 5 t 78 pb15b 5 c pb23b 5 c 79 pb16a 5 t vref2_5 pb24a 5 t vref2_5 80 pb16b 5 c vref1_5 pb24b 5 c vref1_5 81 pb17a 5 t pclkt5_0 pb25a 5 t pclkt5_0 82 gnd5 5 gnd5 5 83 pb17b 5 c pclkc5_0 pb25b 5 c pclkc5_0 84 vccaux - vccaux - lfecp/ec6, lfecp/ec10 logic sign al connections: 208 pqfp (cont.) pin number lfecp6/lfec6 lfecp10/lfec10 pin function bank lvds dual function pin function bank lvds dual function
4-21 pinout information lattice semiconductor latticeecp/ ec family data sheet 85 vccio4 4 vccio4 4 86 pb18a 4 t writen pb26a 4 t writen 87 pb18b 4 c cs1n pb26b 4 c cs1n 88 pb19a 4 t vref1_4 pb27a 4 t vref1_4 89 pb19b 4 c csn pb27b 4 c csn 90 pb20a 4 t vref2_4 pb28a 4 t vref2_4 91 pb20b 4 c d0/spid7 pb28b 4 c d0/spid7 92 pb21a 4 t d2/spid5 pb29a 4 t d2/spid5 93 gnd4 4 gnd4 4 94 pb21b 4 c d1/spid6 pb29b 4 c d1/spid6 95 pb22a 4 t bdqs22 pb30a 4 t bdqs30 96 pb22b 4 c d3/spid4 pb30b 4 c d3/spid4 97 pb23a 4 t pb31a 4 t 98 pb23b 4 c d4/spid3 pb31b 4 c d4/spid3 99 pb24a 4 t pb32a 4 t 100 pb24b 4 c d5/spid2 pb32b 4 c d5/spid2 101 pb25a 4 t pb33a 4 t 102 pb25b 4 c d6/spid1 pb33b 4 c d6/spid1 103 pb33a 4 pb41a 4 104 vccio4 4 vccio4 4 105* gnd3 gnd4 - gnd3 gnd4 - 106 vccio3 3 vccio3 3 107 pr27b 3 c vref2_3 pr36b 3 c vref2_3 108 pr27a 3 t vref1_3 pr36a 3 t vref1_3 109 pr26b 3 c pr35b 3 c 110 pr26a 3 t pr35a 3 t 111 pr25b 3 c pr34b 3 c 112 pr25a 3 t pr34a 3 t 113 pr24b 3 c pr33b 3 c 114 pr24a 3 t rdqs24 pr33a 3 t rdqs33 115 pr23b 3 c rlm0_pllc_fb_a pr32b 3 c rlm0_pllc_fb_a 116 gnd3 3 gnd3 3 117 pr23a 3 t rlm0_pllt_fb_a pr32a 3 t rlm0_pllt_fb_a 118 pr22b 3 c rlm0_pllc_in_a pr31b 3 c rlm0_pllc_in_a 119 pr22a 3 t rlm0_pllt_in_a pr31a 3 t rlm0_pllt_in_a 120 vccio3 3 vccio3 3 121 pr21b 3 c di/csspin pr30b 3 c di/csspin 122 pr21a 3 t dout/cson pr30a 3 t dout/cson 123 pr20b 3 c busy/sispi pr29b 3 c busy/sispi 124 pr20a 3 t d7/spid0 pr29a 3 t d7/spid0 125 cfg2 3 cfg2 3 126 cfg1 3 cfg1 3 lfecp/ec6, lfecp/ec10 logic sign al connections: 208 pqfp (cont.) pin number lfecp6/lfec6 lfecp10/lfec10 pin function bank lvds dual function pin function bank lvds dual function
4-22 pinout information lattice semiconductor latticeecp/ ec family data sheet 127 cfg0 3 cfg0 3 128 vcc - vcc - 129 programn 3 programn 3 130 cclk 3 cclk 3 131 initn 3 initn 3 132 gnd - gnd - 133 done 3 done 3 134 gnd - gnd - 135 vcc - vcc - 136 vccaux - vccaux - 137 pr9b 2 c pclkc2_0 pr18b 2 c pclkc2_0 138 gnd2 2 gnd2 2 139 pr9a 2 t pclkt2_0 pr18a 2 t pclkt2_0 140 pr8b 2 c pr17b 2 c 141 pr8a 2 t pr17a 2 t 142 pr7b 2 c pr16b 2 c 143 pr7a 2 t pr16a 2 t 144 pr6b 2 c pr15b 2 c 145 vccio2 2 vccio2 2 146 pr6a 2 t rdqs6 pr15a 2 t rdqs15 147 pr5b 2 c pr14b 2 c 148 pr5a 2 t pr14a 2 t 149 pr4b 2 c pr13b 2 c 150 pr4a 2 t pr13a 2 t 151 nc - gnd - 152 nc - vcc - 153 pr2b 2 c vref1_2 pr2b 2 c vref1_2 154 pr2a 2 t vref2_2 pr2a 2 t vref2_2 155 vccio2 2 vccio2 2 156* gnd1 gnd2 - gnd1 gnd2 - 157 vccio1 1 vccio1 1 158 pt33a 1 pt41a 1 159 pt25b 1 c pt33b 1 c 160 pt25a 1 t pt33a 1 t 161 pt24b 1 c pt32b 1 c 162 pt24a 1 t pt32a 1 t 163 pt23b 1 c pt31b 1 c 164 pt23a 1 t pt31a 1 t 165 pt22b 1 c pt30b 1 c 166 pt22a 1 t tdqs22 pt30a 1 t tdqs30 167 pt21b 1 c pt29b 1 c 168 gnd1 1 gnd1 1 lfecp/ec6, lfecp/ec10 logic sign al connections: 208 pqfp (cont.) pin number lfecp6/lfec6 lfecp10/lfec10 pin function bank lvds dual function pin function bank lvds dual function
4-23 pinout information lattice semiconductor latticeecp/ ec family data sheet 169 pt21a 1 t pt29a 1 t 170 pt20b 1 c pt28b 1 c 171 pt20a 1 t pt28a 1 t 172 pt19b 1 c vref2_1 pt27b 1 c vref2_1 173 pt19a 1 t vref1_1 pt27a 1 t vref1_1 174 pt18b 1 c pt26b 1 c 175 pt18a 1 t pt26a 1 t 176 vccio1 1 vccio1 1 177 vccaux - vccaux - 178 pt17b 0 c pclkc0_0 pt25b 0 c pclkc0_0 179 gnd0 0 gnd0 0 180 pt17a 0 t pclkt0_0 pt25a 0 t pclkt0_0 181 pt16b 0 c vref1_0 pt24b 0 c vref1_0 182 pt16a 0 t vref2_0 pt24a 0 t vref2_0 183 pt15b 0 c pt23b 0 c 184 pt15a 0 t pt23a 0 t 185 pt14b 0 c pt22b 0 c 186 pt14a 0 t tdqs14 pt22a 0 t tdqs22 187 vccio0 0 vccio0 0 188 pt13b 0 c pt21b 0 c 189 gnd0 0 gnd0 0 190 pt13a 0 t pt21a 0 t 191 pt12b 0 c pt20b 0 c 192 pt12a 0 t pt20a 0 t 193 pt11b 0 c pt19b 0 c 194 pt11a 0 t pt19a 0 t 195 pt10b 0 c pt18b 0 c 196 pt10a 0 t pt18a 0 t 197 vccio0 0 vccio0 0 198 pt6b 0 c pt6b 0 c 199 pt6a 0 t tdqs6 pt6a 0 t tdqs6 200 pt5b 0 c pt5b 0 c 201 pt5a 0 t pt5a 0 t 202 pt4b 0 c pt4b 0 c 203 pt4a 0 t pt4a 0 t 204 pt3b 0 c pt3b 0 c 205 pt3a 0 t pt3a 0 t 206 pt2b 0 c pt2b 0 c 207 pt2a 0 t pt2a 0 t 208 vccio0 0 vccio0 0 *double bonded to the pin. lfecp/ec6, lfecp/ec10 logic sign al connections: 208 pqfp (cont.) pin number lfecp6/lfec6 lfecp10/lfec10 pin function bank lvds dual function pin function bank lvds dual function
4-24 pinout information lattice semiconductor latticeecp/ ec family data sheet lfec3 and lfecp/ec6 logic sign al connections: 256 fpbga ball number lfec3 lfecp6/lfec6 ball function bank lvds dual function ball function bank lvds dual function gnd gnd7 7 gnd7 7 d4 pl2a 7 t vref2_7 pl2a 7 t vref2_7 d3 pl2b 7 c vref1_7 pl2b 7 c vref1_7 c3 pl3a 7 t pl3a 7 t c2 pl3b 7 c pl3b 7 c b1 pl4a 7 t pl4a 7 t c1 pl4b 7 c pl4b 7 c e3 pl5a 7 t pl5a 7 t e4 pl5b 7 c pl5b 7 c f4 pl6a 7 t ldqs6 pl6a 7 t ldqs6 f5 pl6b 7 c pl6b 7 c g4 pl7a 7 t pl7a 7 t g3 pl7b 7 c pl7b 7 c d2 pl8a 7 t pl8a 7 t d1 pl8b 7 c pl8b 7 c e1 pl9a 7 t pclkt7_0 pl9a 7 t pclkt7_0 gnd gnd7 7 gnd7 7 e2 pl9b 7 c pclkc7_0 pl9b 7 c pclkc7_0 f3 xres 6 xres 6 g5 nc - pl11a 6 t h5 nc - pl11b 6 c f2 nc - pl12a 6 t f1 nc - pl12b 6 c h4 nc - pl13a 6 t h3 nc - pl13b 6 c g2 nc - pl14a 6 t --- gnd66 g1 nc - pl14b 6 c j4 nc - pl15a 6 t ldqs15 j3 nc - pl15b 6 c j5 nc - pl16a 6 t k5 nc - pl16b 6 c h2 nc - pl17a 6 t h1 nc - pl17b 6 c j2 nc - pl18a 6 t --- gnd66 j1 nc - pl18b 6 c k4 tck 6 tck 6 k3 tdi 6 tdi 6 l3 tms 6 tms 6 l5 tdo 6 tdo 6 l4 vccj 6 vccj 6
4-25 pinout information lattice semiconductor latticeecp/ ec family data sheet k2 pl11a 6 t llm0_pllt_in_a pl20a 6 t llm0_pllt_in_a k1 pl11b 6 c llm0_pllc_in_a pl20b 6 c llm0_pllc_in_a l2 pl12a 6 t llm0_pllt_fb_a pl21a 6 t llm0_pllt_fb_a l1 pl12b 6 c llm0_pllc_fb_a pl21b 6 c llm0_pllc_fb_a m2 pl13a 6 t pl22a 6 t m1 pl13b 6 c pl22b 6 c n1 pl14a 6 t pl23a 6 t gnd gnd6 6 gnd6 6 n2 pl14b 6 c pl23b 6 c m4 pl15a 6 t ldqs15 pl24a 6 t ldqs24 m3 pl15b 6 c pl24b 6 c p1 pl16a 6 t pl25a 6 t r1 pl16b 6 c pl25b 6 c p2 pl17a 6 t pl26a 6 t p3 pl17b 6 c pl26b 6 c n3 pl18a 6 t vref1_6 pl27a 6 t vref1_6 n4 pl18b 6 c vref2_6 pl27b 6 c vref2_6 gnd gnd6 6 gnd6 6 gnd gnd5 5 gnd5 5 p4 pb2a 5 t pb2a 5 t n5 pb2b 5 c pb2b 5 c p5 pb3a 5 t pb3a 5 t p6 pb3b 5 c pb3b 5 c r4 pb4a 5 t pb4a 5 t r3 pb4b 5 c pb4b 5 c t2 pb5a 5 t pb5a 5 t t3 pb5b 5 c pb5b 5 c r5 pb6a 5 t bdqs6 pb6a 5 t bdqs6 r6 pb6b 5 c pb6b 5 c t4 pb7a 5 t pb7a 5 t t5 pb7b 5 c pb7b 5 c n6 pb8a 5 t pb8a 5 t m6 pb8b 5 c pb8b 5 c t6 pb9a 5 t pb9a 5 t gnd gnd5 5 gnd5 5 t7 pb9b 5 c pb9b 5 c p7 pb10a 5 t pb10a 5 t n7 pb10b 5 c pb10b 5 c r7 pb11a 5 t pb11a 5 t r8 pb11b 5 c pb11b 5 c m7 pb12a 5 t pb12a 5 t m8 pb12b 5 c pb12b 5 c t8 pb13a 5 t pb13a 5 t lfec3 and lfecp/ec6 logic signal connections: 2 56 fpbga (cont.) ball number lfec3 lfecp6/lfec6 ball function bank lvds dual function ball function bank lvds dual function
4-26 pinout information lattice semiconductor latticeecp/ ec family data sheet gnd gnd5 5 gnd5 5 t9 pb13b 5 c pb13b 5 c p8 pb14a 5 t bdqs14 pb14a 5 t bdqs14 n8 pb14b 5 c pb14b 5 c r9 pb15a 5 t pb15a 5 t r10 pb15b 5 c pb15b 5 c p9 pb16a 5 t vref2_5 pb16a 5 t vref2_5 n9 pb16b 5 c vref1_5 pb16b 5 c vref1_5 t10 pb17a 5 t pclkt5_0 pb17a 5 t pclkt5_0 gnd gnd5 5 gnd5 5 t11 pb17b 5 c pclkc5_0 pb17b 5 c pclkc5_0 t12 pb18a 4 t writen pb18a 4 t writen t13 pb18b 4 c cs1n pb18b 4 c cs1n p10 pb19a 4 t vref1_4 pb19a 4 t vref1_4 n10 pb19b 4 c csn pb19b 4 c csn t14 pb20a 4 t vref2_4 pb20a 4 t vref2_4 t15 pb20b 4 c d0/spi d7 pb20b 4 c d0/spid7 m10 pb21a 4 t d2/spid5 pb21a 4 t d2/spid5 gnd gnd4 4 gnd4 4 m11 pb21b 4 c d1/spid6 pb21b 4 c d1/spid6 r11 pb22a 4 t bdqs22 pb22a 4 t bdqs22 p11 pb22b 4 c d3/spid4 pb22b 4 c d3/spid4 r13 pb23a 4 t pb23a 4 t r14 pb23b 4 c d4/spid3 pb23b 4 c d4/spid3 p12 pb24a 4 t pb24a 4 t p13 pb24b 4 c d5/spid2 pb24b 4 c d5/spid2 n11 pb25a 4 t pb25a 4 t --- gnd44 n12 pb25b 4 c d6/spid1 pb25b 4 c d6/spid1 r12 nc - pb26a 4 gnd gnd4 4 gnd4 4 --- gnd44 gnd gnd3 3 gnd3 3 n13 pr18b 3 c vref2_3 pr27b 3 c vref2_3 n14 pr18a 3 t vref1_3 pr27a 3 t vref1_3 p14 pr17b 3 c pr26b 3 c p15 pr17a 3 t pr26a 3 t r15 pr16b 3 c pr25b 3 c r16 pr16a 3 t pr25a 3 t m13 pr15b 3 c pr24b 3 c m14 pr15a 3 t rdqs15 pr24a 3 t rdqs24 p16 pr14b 3 c rlm0_pllc_fb_a pr23b 3 c rlm0_pllc_fb_a gnd gnd3 3 gnd3 3 lfec3 and lfecp/ec6 logic signal connections: 2 56 fpbga (cont.) ball number lfec3 lfecp6/lfec6 ball function bank lvds dual function ball function bank lvds dual function
4-27 pinout information lattice semiconductor latticeecp/ ec family data sheet n16 pr14a 3 t rlm0_pllt_fb_a pr23a 3 t rlm0_pllt_fb_a n15 pr13b 3 c rlm0_pllc_in_a pr22b 3 c rlm0_pllc_in_a m15 pr13a 3 t rlm0_pllt_in_a pr22a 3 t rlm0_pllt_in_a m16 pr12b 3 c di/csspin pr21b 3 c di/csspin l16 pr12a 3 t dout/cson pr21a 3 t dout/cson k16 pr11b 3 c busy/sispi pr20b 3 c busy/sispi j16 pr11a 3 t d7/spid0 pr20a 3 t d7/spid0 l12 cfg2 3 cfg2 3 l14 cfg1 3 cfg1 3 l13 cfg0 3 cfg0 3 k13 programn 3 programn 3 l15 cclk 3 cclk 3 k15 initn 3 initn 3 k14 done 3 done 3 -- gnd33 h16 nc - pr18b 3 c h15 nc - pr18a 3 t g16 nc - pr17b 3 c g15 nc - pr17a 3 t k12 nc - pr16b 3 c j12 nc - pr16a 3 t j14 nc - pr15b 3 c j15 nc - pr15a 3 t rdqs15 f16 nc - pr14b 3 c --- gnd33 f15 nc - pr14a 3 t j13 nc - pr13b 3 c h13 nc - pr13a 3 t h14 nc - pr12b 3 c g14 nc - pr12a 3 t e16 nc - pr11b 3 c e15 nc - pr11a 3 t h12 pr9b 2 c pclkc2_0 pr9b 2 c pclkc2_0 gnd gnd2 2 gnd2 g12 pr9a 2 t pclkt2_0 pr9a 2 t pclkt2_0 g13 pr8b 2 c pr8b 2 c f13 pr8a 2 t pr8a 2 t f12 pr7b 2 c pr7b 2 c e13 pr7a 2 t pr7a 2 t d16 pr6b 2 c pr6b 2 c d15 pr6a 2 t rdqs6 pr6a 2 t rdqs6 f14 pr5b 2 c pr5b 2 c e14 pr5a 2 t pr5a 2 t lfec3 and lfecp/ec6 logic signal connections: 2 56 fpbga (cont.) ball number lfec3 lfecp6/lfec6 ball function bank lvds dual function ball function bank lvds dual function
4-28 pinout information lattice semiconductor latticeecp/ ec family data sheet c16 pr4b 2 c pr4b 2 c b16 pr4a 2 t pr4a 2 t c15 pr3b 2 c pr3b 2 c c14 pr3a 2 t pr3a 2 t d14 pr2b 2 c vref1_2 pr2b 2 c vref1_2 d13 pr2a 2 t vref2_2 pr2a 2 t vref2_2 gnd gnd2 2 gnd2 2 gnd gnd1 1 gnd1 1 --- gnd11 b13 nc - pt26b 1 c c13 nc - pt26a 1 t c12 pt25b 1 c pt25b 1 c --- gnd11 d12 pt25a 1 t pt25a 1 t a15 pt24b 1 c pt24b 1 c b14 pt24a 1 t pt24a 1 t d11 pt23b 1 c pt23b 1 c c11 pt23a 1 t pt23a 1 t e10 pt22b 1 c pt22b 1 c e11 pt22a 1 t tdqs22 pt22a 1 t tdqs22 a14 pt21b 1 c pt21b 1 c gnd gnd1 1 gnd1 1 a13 pt21a 1 t pt21a 1 t d10 pt20b 1 c pt20b 1 c c10 pt20a 1 t pt20a 1 t a12 pt19b 1 c vref2_1 pt19b 1 c vref2_1 b12 pt19a 1 t vref1_1 pt19a 1 t vref1_1 a11 pt18b 1 c pt18b 1 c b11 pt18a 1 t pt18a 1 t a10 pt17b 0 c pclkc0_0 pt17b 0 c pclkc0_0 gnd gnd0 0 gnd0 0 b10 pt17a 0 t pclkt0_0 pt17a 0 t pclkt0_0 c9 pt16b 0 c vref1_0 pt16b 0 c vref1_0 b9 pt16a 0 t vref2_0 pt16a 0 t vref2_0 e9 pt15b 0 c pt15b 0 c d9 pt15a 0 t pt15a 0 t d8 pt14b 0 c pt14b 0 c c8 pt14a 0 t tdqs14 pt14a 0 t tdqs14 a9 pt13b 0 c pt13b 0 c gnd gnd0 0 gnd0 0 a8 pt13a 0 t pt13a 0 t b8 pt12b 0 c pt12b 0 c b7 pt12a 0 t pt12a 0 t lfec3 and lfecp/ec6 logic signal connections: 2 56 fpbga (cont.) ball number lfec3 lfecp6/lfec6 ball function bank lvds dual function ball function bank lvds dual function
4-29 pinout information lattice semiconductor latticeecp/ ec family data sheet d7 pt11b 0 c pt11b 0 c c7 pt11a 0 t pt11a 0 t a7 pt10b 0 c pt10b 0 c a6 pt10a 0 t pt10a 0 t e7 pt9b 0 c pt9b 0 c gnd gnd0 0 gnd0 0 e6 pt9a 0 t pt9a 0 t d6 pt8b 0 c pt8b 0 c c6 pt8a 0 t pt8a 0 t b6 pt7b 0 c pt7b 0 c b5 pt7a 0 t pt7a 0 t a5 pt6b 0 c pt6b 0 c a4 pt6a 0 t tdqs6 pt6a 0 t tdqs6 a3 pt5b 0 c pt5b 0 c a2 pt5a 0 t pt5a 0 t b2 pt4b 0 c pt4b 0 c b3 pt4a 0 t pt4a 0 t d5 pt3b 0 c pt3b 0 c c5 pt3a 0 t pt3a 0 t c4 pt2b 0 c pt2b 0 c b4 pt2a 0 t pt2a 0 t gnd gnd0 0 gnd0 0 a1 gnd - gnd - a16 gnd - gnd - g10 gnd - gnd - g7 gnd - gnd - g8 gnd - gnd - g9 gnd - gnd - h10 gnd - gnd - h7 gnd - gnd - h8 gnd - gnd - h9 gnd - gnd - j10 gnd - gnd - j7 gnd - gnd - j8 gnd - gnd - j9 gnd - gnd - k10 gnd - gnd - k7 gnd - gnd - k8 gnd - gnd - k9 gnd - gnd - t1 gnd - gnd - t16 gnd - gnd - e12 vcc - vcc - lfec3 and lfecp/ec6 logic signal connections: 2 56 fpbga (cont.) ball number lfec3 lfecp6/lfec6 ball function bank lvds dual function ball function bank lvds dual function
4-30 pinout information lattice semiconductor latticeecp/ ec family data sheet e5 vcc - vcc - e8 vcc - vcc - m12 vcc - vcc - m5 vcc - vcc - m9 vcc - vcc - b15 vccaux - vccaux - r2 vccaux - vccaux - f7 vccio0 0 vccio0 0 f8 vccio0 0 vccio0 0 f10 vccio1 1 vccio1 1 f9 vccio1 1 vccio1 1 g11 vccio2 2 vccio2 2 h11 vccio2 2 vccio2 2 j11 vccio3 3 vccio3 3 k11 vccio3 3 vccio3 3 l10 vccio4 4 vccio4 4 l9 vccio4 4 vccio4 4 l7 vccio5 5 vccio5 5 l8 vccio5 5 vccio5 5 j6 vccio6 6 vccio6 6 k6 vccio6 6 vccio6 6 g6 vccio7 7 vccio7 7 h6 vccio7 7 vccio7 7 f6 vcc - vcc - f11 vcc - vcc - l11 vcc - vcc - l6 vcc - vcc - lfec3 and lfecp/ec6 logic signal connections: 2 56 fpbga (cont.) ball number lfec3 lfecp6/lfec6 ball function bank lvds dual function ball function bank lvds dual function
4-31 pinout information lattice semiconductor latticeecp/ ec family data sheet lfecp/ec10 and lfecp/ec15 logi c signal connect ions: 256 fpbga ball number lfecp10/lfec10 lfecp15/lfec15 ball function bank lvds dual function ball function bank lvds dual function gnd gnd7 7 gnd7 7 d4 pl2a 7 t vref2_7 pl2a 7 t vref2_7 d3 pl2b 7 c vref1_7 pl2b 7 c vref1_7 gnd gnd7 7 gnd7 7 c3 pl12a 7 t pl16a 7 t c2 pl12b 7 c pl16b 7 c b1 pl13a 7 t pl17a 7 t c1 pl13b 7 c pl17b 7 c e3 pl14a 7 t pl18a 7 t gnd gnd7 7 gnd7 7 --- gnd77 e4 pl14b 7 c pl18b 7 c f4 pl15a 7 t ldqs15 pl19a 7 t ldqs19 f5 pl15b 7 c pl19b 7 c g4 pl16a 7 t pl20a 7 t g3 pl16b 7 c pl20b 7 c d2 pl17a 7 t pl21a 7 t d1 pl17b 7 c pl21b 7 c e1 pl18a 7 t pclkt7_0 pl22a 7 t pclkt7_0 gnd gnd7 7 gnd7 7 e2 pl18b 7 c pclkc7_0 pl22b 7 c pclkc7_0 f3 xres 6 xres 6 g5 pl20a 6 t pl24a 6 t h5 pl20b 6 c pl24b 6 c f2 pl21a 6 t pl25a 6 t f1 pl21b 6 c pl25b 6 c h4 pl22a 6 t pl26a 6 t h3 pl22b 6 c pl26b 6 c g2 pl23a 6 t pl27a 6 t gnd gnd6 6 gnd6 6 g1 pl23b 6 c pl27b 6 c j4 pl24a 6 t ldqs24 pl28a 6 t ldqs28 j3 pl24b 6 c pl28b 6 c j5 pl25a 6 t pl29a 6 t k5 pl25b 6 c pl29b 6 c h2 pl26a 6 t pl30a 6 t h1 pl26b 6 c pl30b 6 c j2 pl27a 6 t pl31a 6 t gnd gnd6 6 gnd6 6 j1 pl27b 6 c pl31b 6 c k4 tck 6 tck 6 k3 tdi 6 tdi 6
4-32 pinout information lattice semiconductor latticeecp/ ec family data sheet l3 tms 6 tms 6 l5 tdo 6 tdo 6 l4 vccj 6 vccj 6 k2 pl29a 6 t llm0_pllt_in_a pl37a 6 t llm0_pllt_in_a k1 pl29b 6 c llm0_pllc_in_a pl37b 6 c llm0_pllc_in_a l2 pl30a 6 t llm0_pllt_fb_a pl38a 6 t llm0_pllt_fb_a l1 pl30b 6 c llm0_pllc_fb_a pl38b 6 c llm0_pllc_fb_a m2 pl31a 6 t pl39a 6 t m1 pl31b 6 c pl39b 6 c n1 pl32a 6 t pl40a 6 t gnd gnd6 6 gnd6 6 --- gnd66 n2 pl32b 6 c pl40b 6 c m4 pl33a 6 t ldqs33 pl41a 6 t ldqs41 m3 pl33b 6 c pl41b 6 c p1 pl34a 6 t pl42a 6 t r1 pl34b 6 c pl42b 6 c p2 pl35a 6 t pl43a 6 t p3 pl35b 6 c pl43b 6 c n3 pl36a 6 t vref1_6 pl44a 6 t vref1_6 n4 pl36b 6 c vref2_6 pl44b 6 c vref2_6 gnd gnd6 6 gnd6 6 gnd gnd5 5 gnd5 5 gnd gnd5 5 gnd5 5 p4 pb10a 5 t pb10a 5 t n5 pb10b 5 c pb10b 5 c p5 pb11a 5 t pb11a 5 t p6 pb11b 5 c pb11b 5 c r4 pb12a 5 t pb12a 5 t r3 pb12b 5 c pb12b 5 c t2 pb13a 5 t pb13a 5 t gnd gnd5 5 gnd5 5 t3 pb13b 5 c pb13b 5 c r5 pb14a 5 t bdqs14 pb14a 5 t bdqs14 r6 pb14b 5 c pb14b 5 c t4 pb15a 5 t pb15a 5 t t5 pb15b 5 c pb15b 5 c n6 pb16a 5 t pb16a 5 t m6 pb16b 5 c pb16b 5 c t6 pb17a 5 t pb17a 5 t gnd gnd5 5 gnd5 5 t7 pb17b 5 c pb17b 5 c p7 pb18a 5 t pb18a 5 t lfecp/ec10 and lfecp/ec15 logic signal connecti ons: 256 fpbga (cont.) ball number lfecp10/lfec10 lfecp15/lfec15 ball function bank lvds dual function ball function bank lvds dual function
4-33 pinout information lattice semiconductor latticeecp/ ec family data sheet n7 pb18b 5 c pb18b 5 c r7 pb19a 5 t pb19a 5 t r8 pb19b 5 c pb19b 5 c m7 pb20a 5 t pb20a 5 t m8 pb20b 5 c pb20b 5 c t8 pb21a 5 t pb21a 5 t gnd gnd5 5 gnd5 5 t9 pb21b 5 c pb21b 5 c p8 pb22a 5 t bdqs22 pb22a 5 t bdqs22 n8 pb22b 5 c pb22b 5 c r9 pb23a 5 t pb23a 5 t r10 pb23b 5 c pb23b 5 c p9 pb24a 5 t vref2_5 pb24a 5 t vref2_5 n9 pb24b 5 c vref1_5 pb24b 5 c vref1_5 t10 pb25a 5 t pclkt5_0 pb25a 5 t pclkt5_0 gnd gnd5 5 gnd5 5 t11 pb25b 5 c pclkc5_0 pb25b 5 c pclkc5_0 t12 pb26a 4 t writen pb26a 4 t writen t13 pb26b 4 c cs1n pb26b 4 c cs1n p10 pb27a 4 t vref1_4 pb27a 4 t vref1_4 n10 pb27b 4 c csn pb27b 4 c csn t14 pb28a 4 t vref2_ 4pb28a4tvref2_4 t15 pb28b 4 c d0/spi d7 pb28b 4 c d0/spid7 m10 pb29a 4 t d2/spid5 pb29a 4 t d2/spid5 gnd gnd4 4 gnd4 4 m11 pb29b 4 c d1/spid6 pb29b 4 c d1/spid6 r11 pb30a 4 t bdqs30 pb30a 4 t bdqs30 p11 pb30b 4 c d3/spid4 pb30b 4 c d3/spid4 r13 pb31a 4 t pb31a 4 t r14 pb31b 4 c d4/spid3 pb31b 4 c d4/spid3 p12 pb32a 4 t pb32a 4 t p13 pb32b 4 c d5/spid2 pb32b 4 c d5/spid2 n11 pb33a 4 t pb33a 4 t gnd gnd4 4 gnd4 4 n12 pb33b 4 c d6/spid1 pb33b 4 c d6/spid1 r12 pb34a 4 pb34a 4 gnd gnd4 4 gnd4 4 gnd gnd4 4 gnd4 4 --- gnd44 --- gnd44 gnd gnd3 3 gnd3 3 n13 pr36b 3 c vref2_3 pr44b 3 c vref2_3 n14 pr36a 3 t vref1_3 pr44a 3 t vref1_3 lfecp/ec10 and lfecp/ec15 logic signal connecti ons: 256 fpbga (cont.) ball number lfecp10/lfec10 lfecp15/lfec15 ball function bank lvds dual function ball function bank lvds dual function
4-34 pinout information lattice semiconductor latticeecp/ ec family data sheet p14 pr35b 3 c pr43b 3 c p15 pr35a 3 t pr43a 3 t r15 pr34b 3 c pr42b 3 c r16 pr34a 3 t pr42a 3 t m13 pr33b 3 c pr41b 3 c m14 pr33a 3 t rdqs33 pr41a 3 t rdqs41 p16 pr32b 3 c rlm0_pllc_fb_a pr40b 3 c rlm0_pllc_fb_a gnd gnd3 3 gnd3 3 n16 pr32a 3 t rlm0_pllt_fb_a pr40a 3 t rlm0_pllt_fb_a n15 pr31b 3 c rlm0_pllc_in_a pr39b 3 c rlm0_pllc_in_a m15 pr31a 3 t rlm0_pllt_in_a pr39a 3 t rlm0_pllt_in_a m16 pr30b 3 c di/csspin pr38b 3 c di/csspin l16 pr30a 3 t dout/cson pr38a 3 t dout/cson k16 pr29b 3 c busy/sispi pr37b 3 c busy/sispi j16 pr29a 3 t d7/spid0 pr37a 3 t d7/spid0 l12 cfg2 3 cfg2 3 l14 cfg1 3 cfg1 3 l13 cfg0 3 cfg0 3 k13 programn 3 programn 3 l15 cclk 3 cclk 3 k15 initn 3 initn 3 k14 done 3 done 3 gnd gnd3 3 gnd3 3 h16 pr27b 3 c pr31b 3 c --- gnd33 h15 pr27a 3 t pr31a 3 t g16 pr26b 3 c pr30b 3 c g15 pr26a 3 t pr30a 3 t k12 pr25b 3 c pr29b 3 c j12 pr25a 3 t pr29a 3 t j14 pr24b 3 c pr28b 3 c j15 pr24a 3 t rdqs24 pr28a 3 t rdqs28 f16 pr23b 3 c pr27b 3 c gnd gnd3 3 gnd3 3 f15 pr23a 3 t pr27a 3 t j13 pr22b 3 c pr26b 3 c h13 pr22a 3 t pr26a 3 t h14 pr21b 3 c pr25b 3 c g14 pr21a 3 t pr25a 3 t e16 pr20b 3 c pr24b 3 c e15 pr20a 3 t pr24a 3 t h12 pr18b 2 c pclkc2_0 pr22b 2 c pclkc2_0 gnd gnd2 2 gnd2 2 lfecp/ec10 and lfecp/ec15 logic signal connecti ons: 256 fpbga (cont.) ball number lfecp10/lfec10 lfecp15/lfec15 ball function bank lvds dual function ball function bank lvds dual function
4-35 pinout information lattice semiconductor latticeecp/ ec family data sheet g12 pr18a 2 t pclkt2_0 pr22a 2 t pclkt2_0 g13 pr17b 2 c pr21b 2 c f13 pr17a 2 t pr21a 2 t f12 pr16b 2 c pr20b 2 c e13 pr16a 2 t pr20a 2 t d16 pr15b 2 c pr19b 2 c d15 pr15a 2 t pr19a 2 t rdqs19 f14 pr14b 2 c pr18b 2 c gnd gnd2 2 gnd2 2 e14 pr14a 2 t pr18a 2 t c16 pr13b 2 c pr17b 2 c b16 pr13a 2 t pr17a 2 t c15 pr12b 2 c pr16b 2 c c14 pr12a 2 t pr16a 2 t gnd gnd2 2 gnd2 2 --- gnd22 d14 pr2b 2 c vref1_2 pr2b 2 c vref1_2 d13 pr2a 2 t vref2_2 pr2a 2 t vref2_2 gnd gnd2 2 gnd2 2 gnd gnd1 1 gnd1 1 gnd gnd1 1 gnd1 1 --- gnd11 --- gnd11 b13 pt34b 1 c pt34b 1 c c13 pt34a 1 t pt34a 1 t c12 pt33b 1 c pt33b 1 c gnd gnd1 1 gnd1 1 d12 pt33a 1 t pt33a 1 t a15 pt32b 1 c pt32b 1 c b14 pt32a 1 t pt32a 1 t d11 pt31b 1 c pt31b 1 c c11 pt31a 1 t pt31a 1 t e10 pt30b 1 c pt30b 1 c e11 pt30a 1 t tdqs30 pt30a 1 t tdqs30 a14 pt29b 1 c pt29b 1 c gnd gnd1 1 gnd1 1 a13 pt29a 1 t pt29a 1 t d10 pt28b 1 c pt28b 1 c c10 pt28a 1 t pt28a 1 t a12 pt27b 1 c vref2_1 pt27b 1 c vref2_1 b12 pt27a 1 t vref1_1 pt27a 1 t vref1_1 a11 pt26b 1 c pt26b 1 c b11 pt26a 1 t pt26a 1 t lfecp/ec10 and lfecp/ec15 logic signal connecti ons: 256 fpbga (cont.) ball number lfecp10/lfec10 lfecp15/lfec15 ball function bank lvds dual function ball function bank lvds dual function
4-36 pinout information lattice semiconductor latticeecp/ ec family data sheet a10 pt25b 0 c pclkc0_0 pt25b 0 c pclkc0_0 gnd gnd0 0 gnd0 0 b10 pt25a 0 t pclkt0_0 pt25a 0 t pclkt0_0 c9 pt24b 0 c vref1_0 pt24b 0 c vref1_0 b9 pt24a 0 t vref2_0 p t24a 0 t vref2_0 e9 pt23b 0 c pt23b 0 c d9 pt23a 0 t pt23a 0 t d8 pt22b 0 c pt22b 0 c c8 pt22a 0 t tdqs22 pt22a 0 t tdqs22 a9 pt21b 0 c pt21b 0 c gnd gnd0 0 gnd0 0 a8 pt21a 0 t pt21a 0 t b8 pt20b 0 c pt20b 0 c b7 pt20a 0 t pt20a 0 t d7 pt19b 0 c pt19b 0 c c7 pt19a 0 t pt19a 0 t a7 pt18b 0 c pt18b 0 c a6 pt18a 0 t pt18a 0 t e7 pt17b 0 c pt17b 0 c gnd gnd0 0 gnd0 0 e6 pt17a 0 t pt17a 0 t d6 pt16b 0 c pt16b 0 c c6 pt16a 0 t pt16a 0 t b6 pt15b 0 c pt15b 0 c b5 pt15a 0 t pt15a 0 t a5 pt14b 0 c pt14b 0 c a4 pt14a 0 t tdqs14 pt14a 0 t tdqs14 a3 pt13b 0 c pt13b 0 c -gnd00 gnd00 a2 pt13a 0 t pt13a 0 t b2 pt12b 0 c pt12b 0 c b3 pt12a 0 t pt12a 0 t d5 pt11b 0 c pt11b 0 c c5 pt11a 0 t pt11a 0 t c4 pt10b 0 c pt10b 0 c b4 pt10a 0 t pt10a 0 t gnd gnd0 0 gnd0 0 gnd gnd0 0 gnd0 0 a1 gnd - gnd - a16 gnd - gnd - g10 gnd - gnd - g7 gnd - gnd - g8 gnd - gnd - lfecp/ec10 and lfecp/ec15 logic signal connecti ons: 256 fpbga (cont.) ball number lfecp10/lfec10 lfecp15/lfec15 ball function bank lvds dual function ball function bank lvds dual function
4-37 pinout information lattice semiconductor latticeecp/ ec family data sheet g9 gnd - gnd - h10 gnd - gnd - h7 gnd - gnd - h8 gnd - gnd - h9 gnd - gnd - j10 gnd - gnd - j7 gnd - gnd - j8 gnd - gnd - j9 gnd - gnd - k10 gnd - gnd - k7 gnd - gnd - k8 gnd - gnd - k9 gnd - gnd - t1 gnd - gnd - t16 gnd - gnd - e12 vcc - vcc - e5 vcc - vcc - e8 vcc - vcc - m12 vcc - vcc - m5 vcc - vcc - m9 vcc - vcc - b15 vccaux - vccaux - r2 vccaux - vccaux - f7 vccio0 0 vccio0 0 f8 vccio0 0 vccio0 0 f10 vccio1 1 vccio1 1 f9 vccio1 1 vccio1 1 g11 vccio2 2 vccio2 2 h11 vccio2 2 vccio2 2 j11 vccio3 3 vccio3 3 k11 vccio3 3 vccio3 3 l10 vccio4 4 vccio4 4 l9 vccio4 4 vccio4 4 l7 vccio5 5 vccio5 5 l8 vccio5 5 vccio5 5 j6 vccio6 6 vccio6 6 k6 vccio6 6 vccio6 6 g6 vccio7 7 vccio7 7 h6 vccio7 7 vccio7 7 f6 vcc - vcc - f11 vcc - vcc - l11 vcc - vcc - l6 vcc - vcc - lfecp/ec10 and lfecp/ec15 logic signal connecti ons: 256 fpbga (cont.) ball number lfecp10/lfec10 lfecp15/lfec15 ball function bank lvds dual function ball function bank lvds dual function
4-38 pinout information lattice semiconductor latticeecp/ ec family data sheet lfecp/ec6, lfecp/ec10, lfecp/ec 15 logic signal connections:  484 fpbga lfecp6/lfec6 lfecp10/lfec10 lfecp/lfec15 ball number ball function bank lvds dual function ball number ball function bank lvds dual function ball number ball function bank lvds dual function gnd gnd7 7 gnd gnd7 7 gnd gnd7 7 d4 pl2a 7 t vref2_7 d4 pl2a 7 t vref2_7 d4 pl2a 7 t vref2_7 e4 pl2b 7 c vref1_7 e4 pl2b 7 c vref1_7 e4 pl2b 7 c vref1_7 c3 nc - c3 pl3a 7 t c3 pl3a 7 t b2 nc - b2 pl3b 7 c b2 pl3b 7 c e5 nc - e5 pl4a 7 t e5 pl4a 7 t f5 nc - f5 pl4b 7 c f5 pl4b 7 c d3 nc - d3 pl5a 7 t d3 pl5a 7 t c2 nc - c2 pl5b 7 c c2 pl5b 7 c f4 nc - f4 pl6a 7 t ldqs6 f4 pl6a 7 t ldqs6 g4 nc - g4 pl6b 7 c g4 pl6b 7 c e3 nc - e3 pl7a 7 t e3 pl7a 7 t d2 nc - d2 pl7b 7 c d2 pl7b 7 c b1 nc - b1 pl8a 7 t lum0_pllt_in_a b1 pl8a 7 t lum0_pllt_in_a c1 nc - c1 pl8b 7 c lum0_pllc_in_a c1 pl8b 7 c lum0_pllc_in_a f3 nc - f3 pl9a 7 t lum0_pllt_fb_a f3 pl9a 7 t lum0_pllt_fb_a gnd - - gnd gnd7 7 gnd gnd7 7 e2 nc - e2 pl9b 7 c lum0_pllc_fb_a e2 pl9b 7 c lum0_pllc_fb_a g5 nc - g5 nc - g5 pl11a 7 t h6 nc - h6 nc - h6 pl11b 7 c g3 nc - g3 nc - g3 pl12a 7 t h4 nc - h4 nc - h4 pl12b 7 c j5 nc - j5 nc - j5 pl13a 7 t h5 nc - h5 nc - h5 pl13b 7 c f2 nc - f2 nc - f2 pl14a 7 t gnd - - gnd - - gnd gnd7 7 f1 nc - f1 nc - f1 pl14b 7 c e1 nc - e1 pl11a 7 t e1 pl15a 7 t d1 nc - d1 pl11b 7 c d1 pl15b 7 c h3 pl3a 7 t h3 pl12a 7 t h3 pl16a 7 t g2 pl3b 7 c g2 pl12b 7 c g2 pl16b 7 c h2 pl4a 7 t h2 pl13a 7 t h2 pl17a 7 t g1 pl4b 7 c g1 pl13b 7 c g1 pl17b 7 c j4 pl5a 7 t j4 pl14a 7 t j4 pl18a 7 t gnd - - gnd gnd7 7 gnd gnd7 7 j3 pl5b 7 c j3 pl14b 7 c j3 pl18b 7 c j2 pl6a 7 t ldqs6 j2 pl15a 7 t ldqs15 j2 pl19a 7 t ldqs19 h1 pl6b 7 c h1 pl15b 7 c h1 pl19b 7 c k4 pl7a 7 t k4 pl16a 7 t k4 pl20a 7 t k5 pl7b 7 c k5 pl16b 7 c k5 pl20b 7 c k3 pl8a 7 t k3 pl17a 7 t k3 pl21a 7 t k2 pl8b 7 c k2 pl17b 7 c k2 pl21b 7 c j1 pl9a 7 t pclkt7_0 j1 pl18a 7 t pclkt7_0 j1 pl22a 7 t pclkt7_0 gnd gnd7 7 gnd gnd7 7 gnd gnd7 7 k1 pl9b 7 c pclkc7_0 k1 pl18b 7 c pclkc7_0 k1 pl22b 7 c pclkc7_0 l3 xres 6 l3 xres 6 l3 xres 6 l4 pl11a 6 t l4 pl20a 6 t l4 pl24a 6 t l5 pl11b 6 c l5 pl20b 6 c l5 pl24b 6 c l2 pl12a 6 t l2 pl21a 6 t l2 pl25a 6 t l1 pl12b 6 c l1 pl21b 6 c l1 pl25b 6 c
4-39 pinout information lattice semiconductor latticeecp/ ec family data sheet m4 pl13a 6 t m4 pl22a 6 t m4 pl26a 6 t m5 pl13b 6 c m5 pl22b 6 c m5 pl26b 6 c m1 pl14a 6 t m1 pl23a 6 t m1 pl27a 6 t gnd gnd6 6 gnd gnd6 6 gnd gnd6 6 m2 pl14b 6 c m2 pl23b 6 c m2 pl27b 6 c n3 pl15a 6 t ldqs15 n3 pl24a 6 t ldqs24 n3 pl28a 6 t ldqs28 m3 pl15b 6 c m3 pl24b 6 c m3 pl28b 6 c n5 pl16a 6 t n5 pl25a 6 t n5 pl29a 6 t n4 pl16b 6 c n4 pl25b 6 c n4 pl29b 6 c n1 pl17a 6 t n1 pl26a 6 t n1 pl30a 6 t n2 pl17b 6 c n2 pl26b 6 c n2 pl30b 6 c p1 pl18a 6 t p1 pl27a 6 t p1 pl31a 6 t gnd gnd6 6 gnd gnd6 6 gnd gnd6 6 p2 pl18b 6 c p2 pl27b 6 c p2 pl31b 6 c r6 nc - r6 nc - r6 pl32a 6 t p5 nc - p5 nc - p5 pl32b 6 c p3 nc - p3 nc - p3 pl33a 6 t p4 nc - p4 nc - p4 pl33b 6 c r1 nc - r1 nc - r1 pl34a 6 t r2 nc - r2 nc - r2 pl34b 6 c r5 nc - r5 nc - r5 pl35a 6 t gnd - - - - - gnd gnd6 6 r4 nc - r4 nc - r4 pl35b 6 c t1 nc - t1 nc - t1 nc - t2 nc - t2 nc - t2 nc - r3 nc - r3 nc - r3 nc - t3 nc - t3 nc - t3 nc - t5 tck 6 t5 tck 6 t5 tck 6 u5 tdi 6 u5 tdi 6 u5 tdi 6 t4 tms 6 t4 tms 6 t4 tms 6 u1 tdo 6 u1 tdo 6 u1 tdo 6 u2 vccj 6 u2 vccj 6 u2 vccj 6 v1 pl20a 6 t llm0_pllt_in_a v1 pl29a 6 t llm0_pllt_in_a v1 pl37a 6 t llm0_pllt_in_a v2 pl20b 6 c llm0_pllc_in_a v2 pl29b 6 c llm0_pllc_in_a v2 pl37b 6 c llm0_pllc_in_a u3 pl21a 6 t llm0_pllt_fb_a u3 pl30a 6 t llm0_pllt_fb_a u3 pl38a 6 t llm0_pllt_fb_a v3 pl21b 6 c llm0_pllc_fb_a v3 pl30b 6 c llm0_pllc_fb_a v3 pl38b 6 c llm0_pllc_fb_a u4 pl22a 6 t u4 pl31a 6 t u4 pl39a 6 t v5 pl22b 6 c v5 pl31b 6 c v5 pl39b 6 c w1 pl23a 6 t w1 pl32a 6 t w1 pl40a 6 t gnd gnd6 6 gnd gnd6 6 gnd gnd6 6 w2 pl23b 6 c w2 pl32b 6 c w2 pl40b 6 c y1 pl24a 6 t ldqs24 y1 pl33a 6 t ldqs33 y1 pl41a 6 t ldqs41 y2 pl24b 6 c y2 pl33b 6 c y2 pl41b 6 c aa1 pl25a 6 t aa1 pl34a 6 t aa1 pl42a 6 t aa2 pl25b 6 c aa2 pl34b 6 c aa2 pl42b 6 c w4 pl26a 6 t w4 pl35a 6 t w4 pl43a 6 t v4 pl26b 6 c v4 pl35b 6 c v4 pl43b 6 c w3 pl27a 6 t vref1_6 w3 pl36a 6 t vref1_6 w3 pl44a 6 t vref1_6 y3 pl27b 6 c vref2_6 y3 pl36b 6 c vref2_6 y3 pl44b 6 c vref2_6 gnd gnd6 6 gnd gnd6 6 gnd gnd6 6 lfecp/ec6, lfecp/ec10, lfecp/ec 15 logic signal connections:  484 fpbga (cont.) lfecp6/lfec6 lfecp10/lfec10 lfecp/lfec15 ball number ball function bank lvds dual function ball number ball function bank lvds dual function ball number ball function bank lvds dual function
4-40 pinout information lattice semiconductor latticeecp/ ec family data sheet gnd gnd5 5 gnd gnd5 5 gnd gnd5 5 v7 nc - v7 pb2a 5 t v7 pb2a 5 t t6 nc - t6 pb2b 5 c t6 pb2b 5 c v8 nc - v8 pb3a 5 t v8 pb3a 5 t u7 nc - u7 pb3b 5 c u7 pb3b 5 c w5 nc - w5 pb4a 5 t w5 pb4a 5 t u6 nc - u6 pb4b 5 c u6 pb4b 5 c aa3 nc - aa3 pb5a 5 t aa3 pb5a 5 t ab3 nc - ab3 pb5b 5 c ab3 pb5b 5 c y6 nc - y6 pb6a 5 t bdqs6 y6 pb6a 5 t bdqs6 v6 nc - v6 pb6b 5 c v6 pb6b 5 c aa5 nc - aa5 pb7a 5 t aa5 pb7a 5 t w6 nc - w6 pb7b 5 c w6 pb7b 5 c y5 nc - y5 pb8a 5 t y5 pb8a 5 t y4 nc - y4 pb8b 5 c y4 pb8b 5 c aa4 nc - aa4 pb9a 5 t aa4 pb9a 5 t gnd - - gnd gnd5 5 gnd gnd5 5 ab4 nc - ab4 pb9b 5 c ab4 pb9b 5 c y7 pb2a 5 t y7 pb10a 5 t y7 pb10a 5 t w8 pb2b 5 c w8 pb10b 5 c w8 pb10b 5 c w7 pb3a 5 t w7 pb11a 5 t w7 pb11a 5 t u8 pb3b 5 c u8 pb11b 5 c u8 pb11b 5 c w9 pb4a 5 t w9 pb12a 5 t w9 pb12a 5 t u9 pb4b 5 c u9 pb12b 5 c u9 pb12b 5 c y8 pb5a 5 t y8 pb13a 5 t y8 pb13a 5 t gnd - - gnd gnd5 5 gnd gnd5 5 y9 pb5b 5 c y9 pb13b 5 c y9 pb13b 5 c v9 pb6a 5 t bdqs6 v9 pb14a 5 t bdqs14 v9 pb14a 5 t bdqs14 t9 pb6b 5 c t9 pb14b 5 c t9 pb14b 5 c w10 pb7a 5 t w10 pb15a 5 t w10 pb15a 5 t u10 pb7b 5 c u10 pb15b 5 c u10 pb15b 5 c v10 pb8a 5 t v10 pb16a 5 t v10 pb16a 5 t t10 pb8b 5 c t10 pb16b 5 c t10 pb16b 5 c aa6 pb9a 5 t aa6 pb17a 5 t aa6 pb17a 5 t gnd gnd5 5 gnd gnd5 5 gnd gnd5 5 ab5 pb9b 5 c ab5 pb17b 5 c ab5 pb17b 5 c aa8 pb10a 5 t aa8 pb18a 5 t aa8 pb18a 5 t aa7 pb10b 5 c aa7 pb18b 5 c aa7 pb18b 5 c ab6 pb11a 5 t ab6 pb19a 5 t ab6 pb19a 5 t ab7 pb11b 5 c ab7 pb19b 5 c ab7 pb19b 5 c y10 pb12a 5 t y10 pb20a 5 t y10 pb20a 5 t w11 pb12b 5 c w11 pb20b 5 c w11 pb20b 5 c ab8 pb13a 5 t ab8 pb21a 5 t ab8 pb21a 5 t gnd gnd5 5 gnd gnd5 5 gnd gnd5 5 ab9 pb13b 5 c ab9 pb21b 5 c ab9 pb21b 5 c aa10 pb14a 5 t bdqs14 aa10 pb22a 5 t bdqs22 aa10 pb22a 5 t bdqs22 aa9 pb14b 5 c aa9 pb22b 5 c aa9 pb22b 5 c y11 pb15a 5 t y11 pb23a 5 t y11 pb23a 5 t aa11 pb15b 5 c aa11 pb23b 5 c aa11 pb23b 5 c v11 pb16a 5 t vref2_5 v11 pb24a 5 t vref2_5 v11 pb24a 5 t vref2_5 lfecp/ec6, lfecp/ec10, lfecp/ec 15 logic signal connections:  484 fpbga (cont.) lfecp6/lfec6 lfecp10/lfec10 lfecp/lfec15 ball number ball function bank lvds dual function ball number ball function bank lvds dual function ball number ball function bank lvds dual function
4-41 pinout information lattice semiconductor latticeecp/ ec family data sheet v12 pb16b 5 c vref1_5 v12 pb24b 5 c vref1_5 v12 pb24b 5 c vref1_5 ab10 pb17a 5 t pclkt5_0 ab10 pb25a 5 t pclkt5_0 ab10 pb25a 5 t pclkt5_0 gnd gnd5 5 gnd gnd5 5 gnd gnd5 5 ab11 pb17b 5 c pclkc5_0 ab11 pb25b 5 c pclkc5_0 ab11 pb25b 5 c pclkc5_0 y12 pb18a 4 t writen y12 pb26a 4 t writen y12 pb26a 4 t writen u11 pb18b 4 c cs1n u11 pb26b 4 c cs1n u11 pb26b 4 c cs1n w12 pb19a 4 t vref1_4 w12 pb27a 4 t vref1_4 w12 pb27a 4 t vref1_4 u12 pb19b 4 c csn u12 pb27b 4 c csn u12 pb27b 4 c csn w13 pb20a 4 t vref2_4 w13 pb28a 4 t vref2_4 w13 pb28a 4 t vref2_4 u13 pb20b 4 c d0/spid7 u13 pb28b 4 c d0/spid7 u13 pb28b 4 c d0/spid7 aa12 pb21a 4 t d2/spid5 aa12 pb29a 4 t d2/spid5 aa12 pb29a 4 t d2/spid5 gnd gnd4 4 gnd gnd4 4 gnd gnd4 4 ab12 pb21b 4 c d1/spid6 ab12 pb29b 4 c d1/spid6 ab12 pb29b 4 c d1/spid6 t13 pb22a 4 t bdqs22 t13 pb30a 4 t bdqs30 t13 pb30a 4 t bdqs30 v13 pb22b 4 c d3/spid4 v13 pb30b 4 c d3/spid4 v13 pb30b 4 c d3/spid4 w14 pb23a 4 t w14 pb31a 4 t w14 pb31a 4 t u14 pb23b 4 c d4/spid3 u14 pb31b 4 c d4/spid3 u14 pb31b 4 c d4/spid3 y13 pb24a 4 t y13 pb32a 4 t y13 pb32a 4 t v14 pb24b 4 c d5/spid2 v14 pb32b 4 c d5/spid2 v14 pb32b 4 c d5/spid2 aa13 pb25a 4 t aa13 pb33a 4 t aa13 pb33a 4 t gnd gnd4 4 gnd gnd4 4 gnd gnd4 4 ab13 pb25b 4 c d6/spid1 ab13 pb33b 4 c d6/spid1 ab13 pb33b 4 c d6/spid1 aa14 pb26a 4 t aa14 pb34a 4 t aa14 pb34a 4 t y14 pb26b 4 c y14 pb34b 4 c y14 pb34b 4 c y15 pb27a 4 t y15 pb35a 4 t y15 pb35a 4 t w15 pb27b 4 c w15 pb35b 4 c w15 pb35b 4 c v15 pb28a 4 t v15 pb36a 4 t v15 pb36a 4 t t14 pb28b 4 c t14 pb36b 4 c t14 pb36b 4 c ab14 pb29a 4 t ab14 pb37a 4 t ab14 pb37a 4 t gnd gnd4 4 gnd gnd4 4 gnd gnd4 4 ab15 pb29b 4 c ab15 pb37b 4 c ab15 pb37b 4 c ab16 pb30a 4 t bdqs30 ab16 pb38a 4 t bdqs38 ab16 pb38a 4 t bdqs38 aa15 pb30b 4 c aa15 pb38b 4 c aa15 pb38b 4 c ab17 pb31a 4 t ab17 pb39a 4 t ab17 pb39a 4 t aa16 pb31b 4 c aa16 pb39b 4 c aa16 pb39b 4 c ab18 pb32a 4 t ab18 pb40a 4 t ab18 pb40a 4 t aa17 pb32b 4 c aa17 pb40b 4 c aa17 pb40b 4 c ab19 pb33a 4 t ab19 pb41a 4 t ab19 pb41a 4 t gnd - - gnd - - gnd gnd4 4 aa18 pb33b 4 c aa18 pb41b 4 c aa18 pb41b 4 c w16 nc - w16 nc - w16 pb42a 4 t u15 nc - u15 nc - u15 pb42b 4 c v16 nc - v16 nc - v16 pb43a 4 t u16 nc - u16 nc - u16 pb43b 4 c y17 nc - y17 nc - y17 pb44a 4 t v17 nc - v17 nc - v17 pb44b 4 c ab20 nc - ab20 nc - ab20 pb45a 4 t gnd - - gnd - - gnd gnd4 4 aa19 nc - aa19 nc - aa19 pb45b 4 c y16 nc - y16 nc - y16 pb46a 4 t bdqs46 lfecp/ec6, lfecp/ec10, lfecp/ec 15 logic signal connections:  484 fpbga (cont.) lfecp6/lfec6 lfecp10/lfec10 lfecp/lfec15 ball number ball function bank lvds dual function ball number ball function bank lvds dual function ball number ball function bank lvds dual function
4-42 pinout information lattice semiconductor latticeecp/ ec family data sheet w17 nc - w17 nc - w17 pb46b 4 c aa20 nc - aa20 nc - aa20 pb47a 4 t y19 nc - y19 nc - y19 pb47b 4 c y18 nc - y18 nc - y18 pb48a 4 t w18 nc - w18 nc - w18 pb48b 4 c t17 nc - t17 nc - t17 pb49a 4 t u17 nc - u17 nc - u17 pb49b 4 c gnd gnd4 4 gnd gnd4 4 gnd gnd4 4 gnd gnd3 3 gnd gnd3 3 gnd gnd3 3 w20 pr27b 3 c vref2_3 w20 pr36b 3 c vref2_3 w20 pr44b 3 c vref2_3 y20 pr27a 3 t vref1_3 y20 pr36a 3 t vref1_3 y20 pr44a 3 t vref1_3 aa21 pr26b 3 c aa21 pr35b 3 c aa21 pr43b 3 c ab21 pr26a 3 t ab21 pr35a 3 t ab21 pr43a 3 t w19 pr25b 3 c w19 pr34b 3 c w19 pr42b 3 c v19 pr25a 3 t v19 pr34a 3 t v19 pr42a 3 t y21 pr24b 3 c y21 pr33b 3 c y21 pr41b 3 c aa22 pr24a 3 t rdqs24 aa22 pr33a 3 t rdqs33 aa22 pr41a 3 t rdqs41 v20 pr23b 3 c rlm0_pllc_fb_a v20 pr32b 3 c rlm0_pllc_fb_a v20 pr40b 3 c rlm0_pllc_fb_a gnd gnd3 3 gnd gnd3 3 gnd gnd3 3 u20 pr23a 3 t rlm0_pllt_fb_a u20 pr32a 3 t rlm0_pllt_fb_a u20 pr40a 3 t rlm0_pllt_fb_a w21 pr22b 3 c rlm0_pllc_in_a w21 pr31b 3 c rlm0_pllc_in_a w21 pr39b 3 c rlm0_pllc_in_a y22 pr22a 3 t rlm0_pllt_in_a y22 pr31a 3 t rlm0_pllt_in_a y22 pr39a 3 t rlm0_pllt_in_a v21 pr21b 3 c di/csspin v21 pr30b 3 c di/csspin v21 pr38b 3 c di/csspin w22 pr21a 3 t dout/cson w22 pr30a 3 t dout/cson w22 pr38a 3 t dout/cson u21 pr20b 3 c busy/sispi u21 pr29b 3 c busy/sispi u21 pr37b 3 c busy/sispi v22 pr20a 3 t d7/spid0 v22 pr29a 3 t d7/spid0 v22 pr37a 3 t d7/spid0 t19 cfg2 3 t19 cfg2 3 t19 cfg2 3 u19 cfg1 3 u19 cfg1 3 u19 cfg1 3 u18 cfg0 3 u18 cfg0 3 u18 cfg0 3 v18 programn 3 v18 programn 3 v18 programn 3 t20 cclk 3 t20 cclk 3 t20 cclk 3 t21 initn 3 t21 initn 3 t21 initn 3 r20 done 3 r20 done 3 r20 done 3 t18 nc - t18 nc - t18 nc - r17 nc - r17 nc - r17 nc - r19 nc - r19 nc - r19 nc - r18 nc - r18 nc - r18 nc - u22 nc - u22 nc - u22 pr35b 3 c gnd - - gnd - - gnd gnd3 3 t22 nc - t22 nc - t22 pr35a 3 t r21 nc - r21 nc - r21 pr34b 3 c r22 nc - r22 nc - r22 pr34a 3 t p20 nc - p20 nc - p20 pr33b 3 c n20 nc - n20 nc - n20 pr33a 3 t p19 nc - p19 nc - p19 pr32b 3 c p18 nc - p18 nc - p18 pr32a 3 t p21 pr18b 3 c p21 pr27b 3 c p21 pr31b 3 c gnd gnd3 3 gnd gnd3 3 gnd gnd3 3 p22 pr18a 3 t p22 pr27a 3 t p22 pr31a 3 t n21 pr17b 3 c n21 pr26b 3 c n21 pr30b 3 c lfecp/ec6, lfecp/ec10, lfecp/ec 15 logic signal connections:  484 fpbga (cont.) lfecp6/lfec6 lfecp10/lfec10 lfecp/lfec15 ball number ball function bank lvds dual function ball number ball function bank lvds dual function ball number ball function bank lvds dual function
4-43 pinout information lattice semiconductor latticeecp/ ec family data sheet n22 pr17a 3 t n22 pr26a 3 t n22 pr30a 3 t n19 pr16b 3 c n19 pr25b 3 c n19 pr29b 3 c n18 pr16a 3 t n18 pr25a 3 t n18 pr29a 3 t m21 pr15b 3 c m21 pr24b 3 c m21 pr28b 3 c l20 pr15a 3 t rdqs15 l20 pr24a 3 t rdqs24 l20 pr28a 3 t rdqs28 l21 pr14b 3 c l21 pr23b 3 c l21 pr27b 3 c gnd gnd3 3 gnd gnd3 3 gnd gnd3 3 m20 pr14a 3 t m20 pr23a 3 t m20 pr27a 3 t m18 pr13b 3 c m18 pr22b 3 c m18 pr26b 3 c m19 pr13a 3 t m19 pr22a 3 t m19 pr26a 3 t m22 pr12b 3 c m22 pr21b 3 c m22 pr25b 3 c l22 pr12a 3 t l22 pr21a 3 t l22 pr25a 3 t k22 pr11b 3 c k22 pr20b 3 c k22 pr24b 3 c k21 pr11a 3 t k21 pr20a 3 t k21 pr24a 3 t j22 pr9b 2 c pclkc2_0 j22 pr18b 2 c pclkc2_0 j22 pr22b 2 c pclkc2_0 gnd gnd2 2 gnd gnd2 2 gnd gnd2 2 j21 pr9a 2 t pclkt2_0 j21 pr18a 2 t pclkt2_0 j21 pr22a 2 t pclkt2_0 h22 pr8b 2 c h22 pr17b 2 c h22 pr21b 2 c h21 pr8a 2 t h21 pr17a 2 t h21 pr21a 2 t l19 pr7b 2 c l19 pr16b 2 c l19 pr20b 2 c l18 pr7a 2 t l18 pr16a 2 t l18 pr20a 2 t k20 pr6b 2 c k20 pr15b 2 c k20 pr19b 2 c j20 pr6a 2 t rdqs6 j20 pr15a 2 t rdqs15 j20 pr19a 2 t rdqs19 k19 pr5b 2 c k19 pr14b 2 c k19 pr18b 2 c gnd - - gnd gnd2 2 gnd gnd2 2 k18 pr5a 2 t k18 pr14a 2 t k18 pr18a 2 t g22 pr4b 2 c g22 pr13b 2 c g22 pr17b 2 c f22 pr4a 2 t f22 pr13a 2 t f22 pr17a 2 t f21 pr3b 2 c f21 pr12b 2 c f21 pr16b 2 c e22 pr3a 2 t e22 pr12a 2 t e22 pr16a 2 t e21 nc - e21 pr11b 2 c e21 pr15b 2 c d22 nc - d22 pr11a 2 t d22 pr15a 2 t g21 nc - g21 nc - g21 pr14b 2 c g20 nc - g20 nc - gnd gnd2 2 gnd - - - - - g20 pr14a 2 t j18 nc - j18 nc - j18 pr13b 2 c h19 nc - h19 nc - h19 pr13a 2 t j19 nc - j19 nc - j19 pr12b 2 c h20 nc - h20 nc - h20 pr12a 2 t h17 nc - h17 nc - h17 pr11b 2 c h18 nc - h18 nc - h18 pr11a 2 t d21 nc - d21 pr9b 2 c rum0_pllc_fb_a d21 pr9b 2 c rum0_pllc_fb_a gnd - - gnd gnd2 2 gnd gnd2 2 c22 nc - c22 pr9a 2 t rum0_pllt_fb_a c22 pr9a 2 t rum0_pllt_fb_a g19 nc - g19 pr8b 2 c rum0_pllc_in_a g19 pr8b 2 c rum0_pllc_in_a g18 nc - g18 pr8a 2 t rum0_pllt_in_a g18 pr8a 2 t rum0_pllt_in_a f20 nc - f20 pr7b 2 c f20 pr7b 2 c f19 nc - f19 pr7a 2 t f19 pr7a 2 t e20 nc - e20 pr6b 2 c e20 pr6b 2 c d20 nc - d20 pr6a 2 t rdqs6 d20 pr6a 2 t rdqs6 lfecp/ec6, lfecp/ec10, lfecp/ec 15 logic signal connections:  484 fpbga (cont.) lfecp6/lfec6 lfecp10/lfec10 lfecp/lfec15 ball number ball function bank lvds dual function ball number ball function bank lvds dual function ball number ball function bank lvds dual function
4-44 pinout information lattice semiconductor latticeecp/ ec family data sheet c21 nc - c21 pr5b 2 c c21 pr5b 2 c c20 nc - c20 pr5a 2 t c20 pr5a 2 t f18 nc - f18 pr4b 2 c f18 pr4b 2 c e18 nc - e18 pr4a 2 t e18 pr4a 2 t b22 nc - b22 pr3b 2 c b22 pr3b 2 c b21 nc - b21 pr3a 2 t b21 pr3a 2 t e19 pr2b 2 c vref1_2 e19 pr2b 2 c vref1_2 e19 pr2b 2 c vref1_2 d19 pr2a 2 t vref2_2 d19 pr2a 2 t vref2_2 d19 pr2a 2 t vref2_2 gnd gnd2 2 gnd gnd2 2 gnd gnd2 2 gnd gnd1 1 gnd gnd1 1 gnd gnd1 1 g17 nc - g17 nc - g17 pt49b 1 c f17 nc - f17 nc - f17 pt49a 1 t d18 nc - d18 nc - d18 pt48b 1 c c18 nc - c18 nc - c18 pt48a 1 t c19 nc - c19 nc - c19 pt47b 1 c b20 nc - b20 nc - b20 pt47a 1 t d17 nc - d17 nc - d17 pt46b 1 c c16 nc - c16 nc - c16 pt46a 1 t tdqs46 b19 nc - b19 nc - b19 pt45b 1 c gnd - - gnd - - gnd gnd1 1 a20 nc - a20 nc - a20 pt45a 1 t e17 nc - e17 nc - e17 pt44b 1 c c17 nc - c17 nc - c17 pt44a 1 t f16 nc - f16 nc - f16 pt43b 1 c e16 nc - e16 nc - e16 pt43a 1 t f15 nc - f15 nc - f15 pt42b 1 c d16 nc - d16 nc - d16 pt42a 1 t b18 pt33b 1 c b18 pt41b 1 c b18 pt41b 1 c gnd - - gnd - - gnd gnd1 1 a19 pt33a 1 t a19 pt41a 1 t a19 pt41a 1 t b17 pt32b 1 c b17 pt40b 1 c b17 pt40b 1 c a18 pt32a 1 t a18 pt40a 1 t a18 pt40a 1 t b16 pt31b 1 c b16 pt39b 1 c b16 pt39b 1 c a17 pt31a 1 t a17 pt39a 1 t a17 pt39a 1 t b15 pt30b 1 c b15 pt38b 1 c b15 pt38b 1 c a16 pt30a 1 t tdqs30 a16 pt38a 1 t tdqs38 a16 pt38a 1 t tdqs38 a15 pt29b 1 c a15 pt37b 1 c a15 pt37b 1 c gnd gnd1 1 gnd gnd1 1 gnd gnd1 1 a14 pt29a 1 t a14 pt37a 1 t a14 pt37a 1 t g14 pt28b 1 c g14 pt36b 1 c g14 pt36b 1 c e15 pt28a 1 t e15 pt36a 1 t e15 pt36a 1 t d15 pt27b 1 c d15 pt35b 1 c d15 pt35b 1 c c15 pt27a 1 t c15 pt35a 1 t c15 pt35a 1 t c14 pt26b 1 c c14 pt34b 1 c c14 pt34b 1 c b14 pt26a 1 t b14 pt34a 1 t b14 pt34a 1 t a13 pt25b 1 c a13 pt33b 1 c a13 pt33b 1 c gnd gnd1 1 gnd gnd1 1 gnd gnd1 1 b13 pt25a 1 t b13 pt33a 1 t b13 pt33a 1 t e14 pt24b 1 c e14 pt32b 1 c e14 pt32b 1 c c13 pt24a 1 t c13 pt32a 1 t c13 pt32a 1 t lfecp/ec6, lfecp/ec10, lfecp/ec 15 logic signal connections:  484 fpbga (cont.) lfecp6/lfec6 lfecp10/lfec10 lfecp/lfec15 ball number ball function bank lvds dual function ball number ball function bank lvds dual function ball number ball function bank lvds dual function
4-45 pinout information lattice semiconductor latticeecp/ ec family data sheet f14 pt23b 1 c f14 pt31b 1 c f14 pt31b 1 c d14 pt23a 1 t d14 pt31a 1 t d14 pt31a 1 t e13 pt22b 1 c e13 pt30b 1 c e13 pt30b 1 c g13 pt22a 1 t tdqs22 g13 pt30a 1 t tdqs30 g13 pt30a 1 t tdqs30 a12 pt21b 1 c a12 pt29b 1 c a12 pt29b 1 c gnd gnd1 1 gnd gnd1 1 gnd gnd1 1 b12 pt21a 1 t b12 pt29a 1 t b12 pt29a 1 t f13 pt20b 1 c f13 pt28b 1 c f13 pt28b 1 c d13 pt20a 1 t d13 pt28a 1 t d13 pt28a 1 t f12 pt19b 1 c vref2_1 f12 pt27b 1 c vref2_1 f12 pt27b 1 c vref2_1 d12 pt19a 1 t vref1_1 d12 pt27a 1 t vref1_1 d12 pt27a 1 t vref1_1 f11 pt18b 1 c f11 pt26b 1 c f11 pt26b 1 c c12 pt18a 1 t c12 pt26a 1 t c12 pt26a 1 t a11 pt17b 0 c pclkc0_0 a11 pt25b 0 c pclkc0_0 a11 pt25b 0 c pclkc0_0 gnd gnd0 0 gnd gnd0 0 gnd gnd0 0 a10 pt17a 0 t pclkt0_0 a10 pt25a 0 t pclkt0_0 a10 pt25a 0 t pclkt0_0 e12 pt16b 0 c vref1_0 e12 pt24b 0 c vref1_0 e12 pt24b 0 c vref1_0 e11 pt16a 0 t vref2_0 e11 pt24a 0 t vref2_0 e11 pt24a 0 t vref2_0 b11 pt15b 0 c b11 pt23b 0 c b11 pt23b 0 c c11 pt15a 0 t c11 pt23a 0 t c11 pt23a 0 t b9 pt14b 0 c b9 pt22b 0 c b9 pt22b 0 c b10 pt14a 0 t tdqs14 b10 pt22a 0 t tdqs22 b10 pt22a 0 t tdqs22 a9 pt13b 0 c a9 pt21b 0 c a9 pt21b 0 c gnd gnd0 0 gnd gnd0 0 gnd gnd0 0 a8 pt13a 0 t a8 pt21a 0 t a8 pt21a 0 t d11 pt12b 0 c d11 pt20b 0 c d11 pt20b 0 c c10 pt12a 0 t c10 pt20a 0 t c10 pt20a 0 t a7 pt11b 0 c a7 pt19b 0 c a7 pt19b 0 c a6 pt11a 0 t a6 pt19a 0 t a6 pt19a 0 t b7 pt10b 0 c b7 pt18b 0 c b7 pt18b 0 c b8 pt10a 0 t b8 pt18a 0 t b8 pt18a 0 t a5 pt9b 0 c a5 pt17b 0 c a5 pt17b 0 c gnd gnd0 0 gnd gnd0 0 gnd gnd0 0 b6 pt9a 0 t b6 pt17a 0 t b6 pt17a 0 t g10 pt8b 0 c g10 pt16b 0 c g10 pt16b 0 c e10 pt8a 0 t e10 pt16a 0 t e10 pt16a 0 t f10 pt7b 0 c f10 pt15b 0 c f10 pt15b 0 c d10 pt7a 0 t d10 pt15a 0 t d10 pt15a 0 t g9 pt6b 0 c g9 pt14b 0 c g9 pt14b 0 c e9 pt6a 0 t tdqs6 e9 pt14a 0 t tdqs14 e9 pt14a 0 t tdqs14 c9 pt5b 0 c c9 pt13b 0 c c9 pt13b 0 c gnd - - gnd gnd0 0 gnd gnd0 0 c8 pt5a 0 t c8 pt13a 0 t c8 pt13a 0 t f9 pt4b 0 c f9 pt12b 0 c f9 pt12b 0 c d9 pt4a 0 t d9 pt12a 0 t d9 pt12a 0 t f8 pt3b 0 c f8 pt11b 0 c f8 pt11b 0 c d7 pt3a 0 t d7 pt11a 0 t d7 pt11a 0 t d8 pt2b 0 c d8 pt10b 0 c d8 pt10b 0 c c7 pt2a 0 t c7 pt10a 0 t c7 pt10a 0 t gnd gnd0 0 gnd gnd0 0 gnd gnd0 0 lfecp/ec6, lfecp/ec10, lfecp/ec 15 logic signal connections:  484 fpbga (cont.) lfecp6/lfec6 lfecp10/lfec10 lfecp/lfec15 ball number ball function bank lvds dual function ball number ball function bank lvds dual function ball number ball function bank lvds dual function
4-46 pinout information lattice semiconductor latticeecp/ ec family data sheet a4 nc - a4 pt9b 0 c a4 pt9b 0 c b4 nc - b4 pt9a 0 t b4 pt9a 0 t c4 nc - c4 pt8b 0 c c4 pt8b 0 c c5 nc - c5 pt8a 0 t c5 pt8a 0 t d6 nc - d6 pt7b 0 c d6 pt7b 0 c b5 nc - b5 pt7a 0 t b5 pt7a 0 t e6 nc - e6 pt6b 0 c e6 pt6b 0 c c6 nc - c6 pt6a 0 t tdqs6 c6 pt6a 0 t tdqs6 a3 nc - a3 pt5b 0 c a3 pt5b 0 c b3 nc - b3 pt5a 0 t b3 pt5a 0 t f6 nc - f6 pt4b 0 c f6 pt4b 0 c d5 nc - d5 pt4a 0 t d5 pt4a 0 t f7 nc - f7 pt3b 0 c f7 pt3b 0 c e8 nc - e8 pt3a 0 t e8 pt3a 0 t g6 nc - g6 pt2b 0 c g6 pt2b 0 c e7 nc - e7 pt2a 0 t e7 pt2a 0 t gnd - - gnd gnd0 0 gnd gnd0 0 a1 gnd - a1 gnd - a1 gnd - a22 gnd - a22 gnd - a22 gnd - ab1 gnd - ab1 gnd - ab1 gnd - ab22 gnd - ab22 gnd - ab22 gnd - h15 gnd - h15 gnd - h15 gnd - h8 gnd - h8 gnd - h8 gnd - j10 gnd - j10 gnd - j10 gnd - j11 gnd - j11 gnd - j11 gnd - j12 gnd - j12 gnd - j12 gnd - j13 gnd - j13 gnd - j13 gnd - j14 gnd - j14 gnd - j14 gnd - j9 gnd - j9 gnd - j9 gnd - k10 gnd - k10 gnd - k10 gnd - k11 gnd - k11 gnd - k11 gnd - k12 gnd - k12 gnd - k12 gnd - k13 gnd - k13 gnd - k13 gnd - k14 gnd - k14 gnd - k14 gnd - k9 gnd - k9 gnd - k9 gnd - l10 gnd - l10 gnd - l10 gnd - l11 gnd - l11 gnd - l11 gnd - l12 gnd - l12 gnd - l12 gnd - l13 gnd - l13 gnd - l13 gnd - l14 gnd - l14 gnd - l14 gnd - l9 gnd - l9 gnd - l9 gnd - m10 gnd - m10 gnd - m10 gnd - m11 gnd - m11 gnd - m11 gnd - m12 gnd - m12 gnd - m12 gnd - m13 gnd - m13 gnd - m13 gnd - m14 gnd - m14 gnd - m14 gnd - m9 gnd - m9 gnd - m9 gnd - n10 gnd - n10 gnd - n10 gnd - n11 gnd - n11 gnd - n11 gnd - n12 gnd - n12 gnd - n12 gnd - lfecp/ec6, lfecp/ec10, lfecp/ec 15 logic signal connections:  484 fpbga (cont.) lfecp6/lfec6 lfecp10/lfec10 lfecp/lfec15 ball number ball function bank lvds dual function ball number ball function bank lvds dual function ball number ball function bank lvds dual function
4-47 pinout information lattice semiconductor latticeecp/ ec family data sheet n13 gnd - n13 gnd - n13 gnd - n14 gnd - n14 gnd - n14 gnd - n9 gnd - n9 gnd - n9 gnd - p10 gnd - p10 gnd - p10 gnd - p11 gnd - p11 gnd - p11 gnd - p12 gnd - p12 gnd - p12 gnd - p13 gnd - p13 gnd - p13 gnd - p14 gnd - p14 gnd - p14 gnd - p9 gnd - p9 gnd - p9 gnd - r15 gnd - r15 gnd - r15 gnd - r8 gnd - r8 gnd - r8 gnd - j16 vcc - j16 vcc - j16 vcc - j7 vcc - j7 vcc - j7 vcc - k16 vcc - k16 vcc - k16 vcc - k17 vcc - k17 vcc - k17 vcc - k6 vcc - k6 vcc - k6 vcc - k7 vcc - k7 vcc - k7 vcc - l17 vcc - l17 vcc - l17 vcc - l6 vcc - l6 vcc - l6 vcc - m17 vcc - m17 vcc - m17 vcc - m6 vcc - m6 vcc - m6 vcc - n16 vcc - n16 vcc - n16 vcc - n17 vcc - n17 vcc - n17 vcc - n6 vcc - n6 vcc - n6 vcc - n7 vcc - n7 vcc - n7 vcc - p16 vcc - p16 vcc - p16 vcc - p7 vcc - p7 vcc - p7 vcc - g11 vccio0 0 g11 vccio0 0 g11 vccio0 0 h10 vccio0 0 h10 vccio0 0 h10 vccio0 0 h11 vccio0 0 h11 vccio0 0 h11 vccio0 0 h9 vccio0 0 h9 vccio0 0 h9 vccio0 0 g12 vccio1 1 g12 vccio1 1 g12 vccio1 1 h12 vccio1 1 h12 vccio1 1 h12 vccio1 1 h13 vccio1 1 h13 vccio1 1 h13 vccio1 1 h14 vccio1 1 h14 vccio1 1 h14 vccio1 1 j15 vccio2 2 j15 vccio2 2 j15 vccio2 2 k15 vccio2 2 k15 vccio2 2 k15 vccio2 2 l15 vccio2 2 l15 vccio2 2 l15 vccio2 2 l16 vccio2 2 l16 vccio2 2 l16 vccio2 2 m15 vccio3 3 m15 vccio3 3 m15 vccio3 3 m16 vccio3 3 m16 vccio3 3 m16 vccio3 3 n15 vccio3 3 n15 vccio3 3 n15 vccio3 3 p15 vccio3 3 p15 vccio3 3 p15 vccio3 3 r12 vccio4 4 r12 vccio4 4 r12 vccio4 4 r13 vccio4 4 r13 vccio4 4 r13 vccio4 4 r14 vccio4 4 r14 vccio4 4 r14 vccio4 4 t12 vccio4 4 t12 vccio4 4 t12 vccio4 4 r10 vccio5 5 r10 vccio5 5 r10 vccio5 5 r11 vccio5 5 r11 vccio5 5 r11 vccio5 5 r9 vccio5 5 r9 vccio5 5 r9 vccio5 5 lfecp/ec6, lfecp/ec10, lfecp/ec 15 logic signal connections:  484 fpbga (cont.) lfecp6/lfec6 lfecp10/lfec10 lfecp/lfec15 ball number ball function bank lvds dual function ball number ball function bank lvds dual function ball number ball function bank lvds dual function
4-48 pinout information lattice semiconductor latticeecp/ ec family data sheet t11 vccio5 5 t11 vccio5 5 t11 vccio5 5 m7 vccio6 6 m7 vccio6 6 m7 vccio6 6 m8 vccio6 6 m8 vccio6 6 m8 vccio6 6 n8 vccio6 6 n8 vccio6 6 n8 vccio6 6 p8 vccio6 6 p8 vccio6 6 p8 vccio6 6 j8 vccio7 7 j8 vccio7 7 j8 vccio7 7 k8 vccio7 7 k8 vccio7 7 k8 vccio7 7 l7 vccio7 7 l7 vccio7 7 l7 vccio7 7 l8 vccio7 7 l8 vccio7 7 l8 vccio7 7 g15 vccaux - g15 vccaux - g15 vccaux - g16 vccaux - g16 vccaux - g16 vccaux - g7 vccaux - g7 vccaux - g7 vccaux - g8 vccaux - g8 vccaux - g8 vccaux - h16 vccaux - h16 vccaux - h16 vccaux - h7 vccaux - h7 vccaux - h7 vccaux - r16 vccaux - r16 vccaux - r16 vccaux - r7 vccaux - r7 vccaux - r7 vccaux - t15 vccaux - t15 vccaux - t15 vccaux - t16 vccaux - t16 vccaux - t16 vccaux - t7 vccaux - t7 vccaux - t7 vccaux - t8 vccaux - t8 vccaux - t8 vccaux - j6 vcc - j6 vcc - j6 vcc - j17 vcc - j17 vcc - j17 vcc - p6 vcc - p6 vcc - p6 vcc - p17 vcc - p17 vcc - p17 vcc - a2 nc - a2 nc - a2 nc - ab2 nc - ab2 nc - ab2 nc - a21 nc - a21 nc - a21 nc - lfecp/ec6, lfecp/ec10, lfecp/ec 15 logic signal connections:  484 fpbga (cont.) lfecp6/lfec6 lfecp10/lfec10 lfecp/lfec15 ball number ball function bank lvds dual function ball number ball function bank lvds dual function ball number ball function bank lvds dual function
4-49 pinout information lattice semiconductor latticeecp/ ec family data sheet lfecp/ec20 and lfecp/ec33 logic signal connections: 484 fpbga lfecp20/lfec20 lfecp/lfec33 ball number ball function bank lvds dual function ball number ball function bank lvds dual function gnd gnd7 7 gnd gnd7 7 d4 pl2a 7 t vref2_7 d4 pl2a 7 t vref2_7 e4 pl2b 7 c vref1_7 e4 pl2b 7 c vref1_7 gnd - - gnd gnd7 7 c3 pl3a 7 t c3 pl10a 7 t b2 pl3b 7 c b2 pl10b 7 c e5 pl4a 7 t e5 pl11a 7 t f5 pl4b 7 c f5 pl11b 7 c d3 pl5a 7 t d3 pl12a 7 t c2 pl5b 7 c c2 pl12b 7 c gnd - - gnd gnd7 7 f4 pl6a 7 t ldqs6 f4 pl14a 7 t ldqs14 g4 pl6b 7 c g4 pl14b 7 c e3 pl7a 7 t e3 pl15a 7 t d2 pl7b 7 c d2 pl15b 7 c b1 pl8a 7 t lum0_pllt_in_a b1 pl16a 7 t lum0_pllt_in_a c1 pl8b 7 c lum0_pllc_in_a c1 pl16b 7 c lum0_pllc_in_a f3 pl9a 7 t lum0_pllt_fb_a f3 pl17a 7 t lum0_pllt_fb_a gnd gnd7 7 gnd gnd7 7 e2 pl9b 7 c lum0_pllc_fb_a e2 pl17b 7 c lum0_pllc_fb_a gnd - - gnd gnd7 7 g5 pl11a 7 t g5 pl23a 7 t ldqs23 h6 pl11b 7 c h6 pl23b 7 c g3 pl12a 7 t g3 pl24a 7 t h4 pl12b 7 c h4 pl24b 7 c j5 pl13a 7 t j5 pl25a 7 t h5 pl13b 7 c h5 pl25b 7 c f2 pl14a 7 t f2 pl26a 7 t gnd gnd7 7 gnd gnd7 7 f1 pl14b 7 c f1 pl26b 7 c e1 pl15a 7 t e1 pl27a 7 t d1 pl15b 7 c d1 pl27b 7 c h3 pl16a 7 t h3 pl28a 7 t g2 pl16b 7 c g2 pl28b 7 c h2 pl17a 7 t h2 pl29a 7 t g1 pl17b 7 c g1 pl29b 7 c j4 pl18a 7 t j4 pl30a 7 t gnd gnd7 7 gnd gnd7 7 j3 pl18b 7 c j3 pl30b 7 c j2 pl19a 7 t ldqs19 j2 pl31a 7 t ldqs31 h1 pl19b 7 c h1 pl31b 7 c k4 pl20a 7 t k4 pl32a 7 t k5 pl20b 7 c k5 pl32b 7 c k3 pl21a 7 t k3 pl33a 7 t
4-50 pinout information lattice semiconductor latticeecp/ ec family data sheet k2 pl21b 7 c k2 pl33b 7 c j1 pl22a 7 t pclkt7_0 j1 pl34a 7 t pclkt7_0 gnd gnd7 7 gnd gnd7 7 k1 pl22b 7 c pclkc7_0 k1 pl34b 7 c pclkc7_0 l3 xres 6 l3 xres 6 l4 pl24a 6 t l4 pl36a 6 t l5 pl24b 6 c l5 pl36b 6 c l2 pl25a 6 t l2 pl37a 6 t l1 pl25b 6 c l1 pl37b 6 c m4 pl26a 6 t m4 pl38a 6 t m5 pl26b 6 c m5 pl38b 6 c m1 pl27a 6 t m1 pl39a 6 t gnd gnd6 6 gnd gnd6 6 m2 pl27b 6 c m2 pl39b 6 c n3 pl28a 6 t ldqs28 n3 pl40a 6 t ldqs40 m3 pl28b 6 c m3 pl40b 6 c n5 pl29a 6 t n5 pl41a 6 t n4 pl29b 6 c n4 pl41b 6 c n1 pl30a 6 t n1 pl42a 6 t n2 pl30b 6 c n2 pl42b 6 c p1 pl31a 6 t p1 pl43a 6 t gnd gnd6 6 gnd gnd6 6 p2 pl31b 6 c p2 pl43b 6 c r6 pl32a 6 t r6 pl44a 6 t p5 pl32b 6 c p5 pl44b 6 c p3 pl33a 6 t p3 pl45a 6 t p4 pl33b 6 c p4 pl45b 6 c r1 pl34a 6 t r1 pl46a 6 t r2 pl34b 6 c r2 pl46b 6 c r5 pl35a 6 t r5 pl47a 6 t gnd gnd6 6 gnd gnd6 6 r4 pl35b 6 c r4 pl47b 6 c t1 pl36a 6 t ldqs36 t1 pl48a 6 t ldqs48 t2 pl36b 6 c t2 pl48b 6 c r3 pl37a 6 t r3 pl49a 6 t t3 pl37b 6 c t3 pl49b 6 c gnd gnd6 6 gnd gnd6 6 t5 tck 6 t5 tck 6 u5 tdi 6 u5 tdi 6 t4 tms 6 t4 tms 6 u1 tdo 6 u1 tdo 6 u2 vccj 6 u2 vccj 6 v1 pl41a 6 t llm0_pllt_in_a v1 pl53a 6 t llm0_pllt_in_a v2 pl41b 6 c llm0_pllc_in_a v2 pl53b 6 c llm0_pllc_in_a lfecp/ec20 and lfecp/ec33 logic signal connections: 484 fpbga lfecp20/lfec20 lfecp/lfec33 ball number ball function bank lvds dual function ball number ball function bank lvds dual function
4-51 pinout information lattice semiconductor latticeecp/ ec family data sheet u3 pl42a 6 t llm0_pllt_fb_a u3 pl54a 6 t llm0_pllt_fb_a v3 pl42b 6 c llm0_pllc_fb_a v3 pl54b 6 c llm0_pllc_fb_a u4 pl43a 6 t u4 pl55a 6 t v5 pl43b 6 c v5 pl55b 6 c w1 pl44a 6 t w1 pl56a 6 t gnd gnd6 6 gnd gnd6 6 w2 pl44b 6 c w2 pl56b 6 c y1 pl45a 6 t ldqs45 y1 pl57a 6 t ldqs57 y2 pl45b 6 c y2 pl57b 6 c aa1 pl46a 6 t aa1 pl58a 6 t aa2 pl46b 6 c aa2 pl58b 6 c w4 pl47a 6 t w4 pl59a 6 t v4 pl47b 6 c v4 pl59b 6 c w3 pl48a 6 t vref1_6 w3 pl68a 6 t vref1_6 y3 pl48b 6 c vref2_6 y3 pl68b 6 c vref2_6 gnd gnd6 6 gnd gnd6 6 gnd gnd5 5 gnd gnd6 6 gnd - gnd gnd6 6 gnd - gnd gnd5 5 gnd gnd5 5 gnd gnd5 5 v7 pb10a 5 t v7 pb10a 5 t t6 pb10b 5 c t6 pb10b 5 c v8 pb11a 5 t v8 pb11a 5 t u7 pb11b 5 c u7 pb11b 5 c w5 pb12a 5 t w5 pb12a 5 t u6 pb12b 5 c u6 pb12b 5 c aa3 pb13a 5 t aa3 pb13a 5 t gnd gnd5 5 gnd gnd5 5 ab3 pb13b 5 c ab3 pb13b 5 c y6 pb14a 5 t bdqs14 y6 pb14a 5 t bdqs14 v6 pb14b 5 c v6 pb14b 5 c aa5 pb15a 5 t aa5 pb15a 5 t w6 pb15b 5 c w6 pb15b 5 c y5 pb16a 5 t y5 pb16a 5 t y4 pb16b 5 c y4 pb16b 5 c aa4 pb17a 5 t aa4 pb17a 5 t gnd gnd5 5 gnd gnd5 5 ab4 pb17b 5 c ab4 pb17b 5 c y7 pb18a 5 t y7 pb18a 5 t w8 pb18b 5 c w8 pb18b 5 c w7 pb19a 5 t w7 pb19a 5 t u8 pb19b 5 c u8 pb19b 5 c w9 pb20a 5 t w9 pb20a 5 t u9 pb20b 5 c u9 pb20b 5 c lfecp/ec20 and lfecp/ec33 logic signal connections: 484 fpbga lfecp20/lfec20 lfecp/lfec33 ball number ball function bank lvds dual function ball number ball function bank lvds dual function
4-52 pinout information lattice semiconductor latticeecp/ ec family data sheet y8 pb21a 5 t y8 pb21a 5 t gnd gnd5 5 gnd gnd5 5 y9 pb21b 5 c y9 pb21b 5 c v9 pb22a 5 t bdqs22 v9 pb22a 5 t bdqs22 t9 pb22b 5 c t9 pb22b 5 c w10 pb23a 5 t w10 pb23a 5 t u10 pb23b 5 c u10 pb23b 5 c v10 pb24a 5 t v10 pb24a 5 t t10 pb24b 5 c t10 pb24b 5 c aa6 pb25a 5 t aa6 pb25a 5 t gnd gnd5 5 gnd gnd5 5 ab5 pb25b 5 c ab5 pb25b 5 c aa8 pb26a 5 t aa8 pb26a 5 t aa7 pb26b 5 c aa7 pb26b 5 c ab6 pb27a 5 t ab6 pb27a 5 t ab7 pb27b 5 c ab7 pb27b 5 c y10 pb28a 5 t y10 pb28a 5 t w11 pb28b 5 c w11 pb28b 5 c ab8 pb29a 5 t ab8 pb29a 5 t gnd gnd5 5 gnd gnd5 5 ab9 pb29b 5 c ab9 pb29b 5 c aa10 pb30a 5 t bdqs30 aa10 pb30a 5 t bdqs30 aa9 pb30b 5 c aa9 pb30b 5 c y11 pb31a 5 t y11 pb31a 5 t aa11 pb31b 5 c aa11 pb31b 5 c v11 pb32a 5 t vref2_5 v11 pb32a 5 t vref2_5 v12 pb32b 5 c vref1_5 v12 pb32b 5 c vref1_5 ab10 pb33a 5 t pclkt5_0 ab10 pb33a 5 t pclkt5_0 gnd gnd5 5 gnd gnd5 5 ab11 pb33b 5 c pclkc5_0 ab11 pb33b 5 c pclkc5_0 y12 pb34a 4 t writen y12 pb34a 4 t writen u11 pb34b 4 c cs1n u11 pb34b 4 c cs1n w12 pb35a 4 t vref1_4 w12 pb35a 4 t vref1_4 u12 pb35b 4 c csn u12 pb35b 4 c csn w13 pb36a 4 t vref2_4 w13 pb36a 4 t vref2_4 u13 pb36b 4 c d0/spid7 u13 pb36b 4 c d0/spid7 aa12 pb37a 4 t d2/spid5 aa12 pb37a 4 t d2/spid5 gnd gnd4 4 gnd gnd4 4 ab12 pb37b 4 c d1/spid6 ab12 pb37b 4 c d1/spid6 t13 pb38a 4 t bdqs38 t13 pb38a 4 t bdqs38 v13 pb38b 4 c d3/spid4 v13 pb38b 4 c d3/spid4 w14 pb39a 4 t w14 pb39a 4 t u14 pb39b 4 c d4/spid3 u14 pb39b 4 c d4/spid3 y13 pb40a 4 t y13 pb40a 4 t lfecp/ec20 and lfecp/ec33 logic signal connections: 484 fpbga lfecp20/lfec20 lfecp/lfec33 ball number ball function bank lvds dual function ball number ball function bank lvds dual function
4-53 pinout information lattice semiconductor latticeecp/ ec family data sheet v14 pb40b 4 c d5/spid2 v14 pb40b 4 c d5/spid2 aa13 pb41a 4 t aa13 pb41a 4 t gnd gnd4 4 gnd gnd4 4 ab13 pb41b 4 c d6/spid1 ab13 pb41b 4 c d6/spid1 aa14 pb42a 4 t aa14 pb42a 4 t y14 pb42b 4 c y14 pb42b 4 c y15 pb43a 4 t y15 pb43a 4 t w15 pb43b 4 c w15 pb43b 4 c v15 pb44a 4 t v15 pb44a 4 t t14 pb44b 4 c t14 pb44b 4 c ab14 pb45a 4 t ab14 pb45a 4 t gnd gnd4 4 gnd gnd4 4 ab15 pb45b 4 c ab15 pb45b 4 c ab16 pb46a 4 t bdqs46 ab16 pb46a 4 t bdqs46 aa15 pb46b 4 c aa15 pb46b 4 c ab17 pb47a 4 t ab17 pb47a 4 t aa16 pb47b 4 c aa16 pb47b 4 c ab18 pb48a 4 t ab18 pb48a 4 t aa17 pb48b 4 c aa17 pb48b 4 c ab19 pb49a 4 t ab19 pb49a 4 t gnd gnd4 4 gnd gnd4 4 aa18 pb49b 4 c aa18 pb49b 4 c w16 pb50a 4 t w16 pb50a 4 t u15 pb50b 4 c u15 pb50b 4 c v16 pb51a 4 t v16 pb51a 4 t u16 pb51b 4 c u16 pb51b 4 c y17 pb52a 4 t y17 pb52a 4 t v17 pb52b 4 c v17 pb52b 4 c ab20 pb53a 4 t ab20 pb53a 4 t gnd gnd4 4 gnd gnd4 4 aa19 pb53b 4 c aa19 pb53b 4 c y16 pb54a 4 t bdqs54 y16 pb54a 4 t bdqs54 w17 pb54b 4 c w17 pb54b 4 c aa20 pb55a 4 t aa20 pb55a 4 t y19 pb55b 4 c y19 pb55b 4 c y18 pb56a 4 t y18 pb56a 4 t w18 pb56b 4 c w18 pb56b 4 c t17 pb57a 4 t t17 pb57a 4 t u17 pb57b 4 c u17 pb57b 4 c gnd - - gnd gnd4 4 gnd gnd4 4 gnd gnd4 4 gnd gnd3 3 gnd gnd4 4 gnd - - gnd gnd3 3 w20 pr48b 3 c vref2_3 w20 pr68b 3 c vref2_3 lfecp/ec20 and lfecp/ec33 logic signal connections: 484 fpbga lfecp20/lfec20 lfecp/lfec33 ball number ball function bank lvds dual function ball number ball function bank lvds dual function
4-54 pinout information lattice semiconductor latticeecp/ ec family data sheet y20 pr48a 3 t vref1_3 y20 pr68a 3 t vref1_3 gnd - - gnd gnd3 3 gnd - - gnd gnd3 3 aa21 pr47b 3 c aa21 pr59b 3 c ab21 pr47a 3 t ab21 pr59a 3 t w19 pr46b 3 c w19 pr58b 3 c v19 pr46a 3 t v19 pr58a 3 t y21 pr45b 3 c y21 pr57b 3 c aa22 pr45a 3 t rdqs45 aa22 pr57a 3 t rdqs57 v20 pr44b 3 c rlm0_pllc_in_a v20 pr56b 3 c rlm0_pllc_in_a gnd gnd3 3 gnd gnd3 3 u20 pr44a 3 t rlm0_pllt_in_a u20 pr56a 3 t rlm0_pllt_in_a w21 pr43b 3 c rlm0_pllc_fb_a w21 pr55b 3 c rlm0_pllc_fb_a y22 pr43a 3 t rlm0_pllt_fb_a y22 pr55a 3 t rlm0_pllt_fb_a v21 pr42b 3 c di/csspin v21 pr54b 3 c di/csspin w22 pr42a 3 t dout/cso nw22 pr54a3tdout/cson u21 pr41b 3 c busy/sispi u21 pr53b 3 c busy/sispi v22 pr41a 3 t d7/spid0 v22 pr53a 3 t d7/spid0 t19 cfg2 3 t19 cfg2 3 u19 cfg1 3 u19 cfg1 3 u18 cfg0 3 u18 cfg0 3 v18 programn 3 v18 programn 3 t20 cclk 3 t20 cclk 3 t21 initn 3 t21 initn 3 r20 done 3 r20 done 3 gnd gnd3 3 gnd gnd3 3 t18 pr37b 3 c t18 pr49b 3 c r17 pr37a 3 t r17 pr49a 3 t r19 pr36b 3 c r19 pr48b 3 c r18 pr36a 3 t rdqs36 r18 pr48a 3 t rdqs48 u22 pr35b 3 c u22 pr47b 3 c gnd gnd3 3 gnd gnd3 3 t22 pr35a 3 t t22 pr47a 3 t r21 pr34b 3 c r21 pr46b 3 c r22 pr34a 3 t r22 pr46a 3 t p20 pr33b 3 c p20 pr45b 3 c n20 pr33a 3 t n20 pr45a 3 t p19 pr32b 3 c p19 pr44b 3 c p18 pr32a 3 t p18 pr44a 3 t p21 pr31b 3 c p21 pr43b 3 c gnd gnd3 3 gnd gnd3 3 p22 pr31a 3 t p22 pr43a 3 t n21 pr30b 3 c n21 pr42b 3 c n22 pr30a 3 t n22 pr42a 3 t lfecp/ec20 and lfecp/ec33 logic signal connections: 484 fpbga lfecp20/lfec20 lfecp/lfec33 ball number ball function bank lvds dual function ball number ball function bank lvds dual function
4-55 pinout information lattice semiconductor latticeecp/ ec family data sheet n19 pr29b 3 c n19 pr41b 3 c n18 pr29a 3 t n18 pr41a 3 t m21 pr28b 3 c m21 pr40b 3 c l20 pr28a 3 t rdqs28 l20 pr40a 3 t rdqs40 l21 pr27b 3 c l21 pr39b 3 c gnd gnd3 3 gnd gnd3 3 m20 pr27a 3 t m20 pr39a 3 t m18 pr26b 3 c m18 pr38b 3 c m19 pr26a 3 t m19 pr38a 3 t m22 pr25b 3 c m22 pr37b 3 c l22 pr25a 3 t l22 pr37a 3 t k22 pr24b 3 c k22 pr36b 3 c k21 pr24a 3 t k21 pr36a 3 t j22 pr22b 2 c pclkc2_0 j22 pr34b 2 c pclkc2_0 gnd gnd2 2 gnd gnd2 2 j21 pr22a 2 t pclkt2_0 j21 pr34a 2 t pclkt2_0 h22 pr21b 2 c h22 pr33b 2 c h21 pr21a 2 t h21 pr33a 2 t l19 pr20b 2 c l19 pr32b 2 c l18 pr20a 2 t l18 pr32a 2 t k20 pr19b 2 c k20 pr31b 2 c j20 pr19a 2 t rdqs19 j20 pr31a 2 t rdqs31 k19 pr18b 2 c k19 pr30b 2 c gnd gnd2 2 gnd gnd2 2 k18 pr18a 2 t k18 pr30a 2 t g22 pr17b 2 c g22 pr29b 2 c f22 pr17a 2 t f22 pr29a 2 t f21 pr16b 2 c f21 pr28b 2 c e22 pr16a 2 t e22 pr28a 2 t e21 pr15b 2 c e21 pr27b 2 c d22 pr15a 2 t d22 pr27a 2 t g21 pr14b 2 c g21 pr26b 2 c g20 pr14a 2 t g20 pr26a 2 t gnd gnd2 2 gnd gnd2 2 j18 pr13b 2 c j18 pr25b 2 c h19 pr13a 2 t h19 pr25a 2 t j19 pr12b 2 c j19 pr24b 2 c h20 pr12a 2 t h20 pr24a 2 t h17 pr11b 2 c h17 pr23b 2 c h18 pr11a 2 t h18 pr23a 2 t rdqs23 d21 pr9b 2 c rum0_pllc_fb_a d21 pr17b 2 c rum0_pllc_fb_a gnd gnd2 2 gnd gnd2 2 gnd - - gnd gnd2 2 c22 pr9a 2 t rum0_pllt_fb_a c22 pr17a 2 t rum0_pllt_fb_a lfecp/ec20 and lfecp/ec33 logic signal connections: 484 fpbga lfecp20/lfec20 lfecp/lfec33 ball number ball function bank lvds dual function ball number ball function bank lvds dual function
4-56 pinout information lattice semiconductor latticeecp/ ec family data sheet g19 pr8b 2 c rum0_pllc_in_a g19 pr16b 2 c rum0_pllc_in_a g18 pr8a 2 t rum0_pllt_in_a g18 pr16a 2 t rum0_pllt_in_a f20 pr7b 2 c f20 pr15b 2 c f19 pr7a 2 t f19 pr15a 2 t e20 pr6b 2 c e20 pr14b 2 c d20 pr6a 2 t rdqs6 d20 pr14a 2 t rdqs14 c21 pr5b 2 c c21 pr13b 2 c gnd - - gnd gnd2 2 c20 pr5a 2 t c20 pr13a 2 t f18 pr4b 2 c f18 pr12b 2 c e18 pr4a 2 t e18 pr12a 2 t b22 pr3b 2 c b22 pr11b 2 c b21 pr3a 2 t b21 pr11a 2 t gnd - - gnd gnd2 2 e19 pr2b 2 c vref1_2 e19 pr2b 2 c vref1_2 d19 pr2a 2 t vref2_2 d19 pr2a 2 t vref2_2 gnd gnd2 2 gnd gnd2 2 gnd gnd1 1 gnd gnd1 1 gnd - - gnd gnd1 1 g17 pt57b 1 c g17 pt57b 1 c gnd - - gnd gnd1 1 f17 pt57a 1 t f17 pt57a 1 t d18 pt56b 1 c d18 pt56b 1 c c18 pt56a 1 t c18 pt56a 1 t c19 pt55b 1 c c19 pt55b 1 c b20 pt55a 1 t b20 pt55a 1 t d17 pt54b 1 c d17 pt54b 1 c c16 pt54a 1 t tdqs54 c16 pt54a 1 t tdqs54 b19 pt53b 1 c b19 pt53b 1 c gnd gnd1 1 gnd gnd1 1 a20 pt53a 1 t a20 pt53a 1 t e17 pt52b 1 c e17 pt52b 1 c c17 pt52a 1 t c17 pt52a 1 t f16 pt51b 1 c f16 pt51b 1 c e16 pt51a 1 t e16 pt51a 1 t f15 pt50b 1 c f15 pt50b 1 c d16 pt50a 1 t d16 pt50a 1 t b18 pt49b 1 c b18 pt49b 1 c gnd gnd1 1 gnd gnd1 1 a19 pt49a 1 t a19 pt49a 1 t b17 pt48b 1 c b17 pt48b 1 c a18 pt48a 1 t a18 pt48a 1 t b16 pt47b 1 c b16 pt47b 1 c a17 pt47a 1 t a17 pt47a 1 t lfecp/ec20 and lfecp/ec33 logic signal connections: 484 fpbga lfecp20/lfec20 lfecp/lfec33 ball number ball function bank lvds dual function ball number ball function bank lvds dual function
4-57 pinout information lattice semiconductor latticeecp/ ec family data sheet b15 pt46b 1 c b15 pt46b 1 c a16 pt46a 1 t tdqs46 a16 pt46a 1 t tdqs46 a15 pt45b 1 c a15 pt45b 1 c gnd gnd1 1 gnd gnd1 1 a14 pt45a 1 t a14 pt45a 1 t g14 pt44b 1 c g14 pt44b 1 c e15 pt44a 1 t e15 pt44a 1 t d15 pt43b 1 c d15 pt43b 1 c c15 pt43a 1 t c15 pt43a 1 t c14 pt42b 1 c c14 pt42b 1 c b14 pt42a 1 t b14 pt42a 1 t a13 pt41b 1 c a13 pt41b 1 c gnd gnd1 1 gnd gnd1 1 b13 pt41a 1 t b13 pt41a 1 t e14 pt40b 1 c e14 pt40b 1 c c13 pt40a 1 t c13 pt40a 1 t f14 pt39b 1 c f14 pt39b 1 c d14 pt39a 1 t d14 pt39a 1 t e13 pt38b 1 c e13 pt38b 1 c g13 pt38a 1 t tdqs38 g13 pt38a 1 t tdqs38 a12 pt37b 1 c a12 pt37b 1 c gnd gnd1 1 gnd gnd1 1 b12 pt37a 1 t b12 pt37a 1 t f13 pt36b 1 c f13 pt36b 1 c d13 pt36a 1 t d13 pt36a 1 t f12 pt35b 1 c vref2_1 f12 pt35b 1 c vref2_1 d12 pt35a 1 t vref1_1 d12 pt35a 1 t vref1_1 f11 pt34b 1 c f11 pt34b 1 c c12 pt34a 1 t c12 pt34a 1 t a11 pt33b 0 c pclkc0_0 a11 pt33b 0 c pclkc0_0 gnd gnd0 0 gnd gnd0 0 a10 pt33a 0 t pclkt0_0 a10 pt33a 0 t pclkt0_0 e12 pt32b 0 c vref1_0 e12 pt32b 0 c vref1_0 e11 pt32a 0 t vref2_0 e11 pt32a 0 t vref2_0 b11 pt31b 0 c b11 pt31b 0 c c11 pt31a 0 t c11 pt31a 0 t b9 pt30b 0 c b9 pt30b 0 c b10 pt30a 0 t tdqs30 b10 pt30a 0 t tdqs30 a9 pt29b 0 c a9 pt29b 0 c gnd gnd0 0 gnd gnd0 0 a8 pt29a 0 t a8 pt29a 0 t d11 pt28b 0 c d11 pt28b 0 c c10 pt28a 0 t c10 pt28a 0 t a7 pt27b 0 c a7 pt27b 0 c lfecp/ec20 and lfecp/ec33 logic signal connections: 484 fpbga lfecp20/lfec20 lfecp/lfec33 ball number ball function bank lvds dual function ball number ball function bank lvds dual function
4-58 pinout information lattice semiconductor latticeecp/ ec family data sheet a6 pt27a 0 t a6 pt27a 0 t b7 pt26b 0 c b7 pt26b 0 c b8 pt26a 0 t b8 pt26a 0 t a5 pt25b 0 c a5 pt25b 0 c gnd gnd0 0 gnd gnd0 0 b6 pt25a 0 t b6 pt25a 0 t g10 pt24b 0 c g10 pt24b 0 c e10 pt24a 0 t e10 pt24a 0 t f10 pt23b 0 c f10 pt23b 0 c d10 pt23a 0 t d10 pt23a 0 t g9 pt22b 0 c g9 pt22b 0 c e9 pt22a 0 t tdqs22 e9 pt22a 0 t tdqs22 c9 pt21b 0 c c9 pt21b 0 c gnd gnd0 0 gnd gnd0 0 c8 pt21a 0 t c8 pt21a 0 t f9 pt20b 0 c f9 pt20b 0 c d9 pt20a 0 t d9 pt20a 0 t f8 pt19b 0 c f8 pt19b 0 c d7 pt19a 0 t d7 pt19a 0 t d8 pt18b 0 c d8 pt18b 0 c c7 pt18a 0 t c7 pt18a 0 t gnd gnd0 0 gnd gnd0 0 a4 pt17b 0 c a4 pt17b 0 c b4 pt17a 0 t b4 pt17a 0 t c4 pt16b 0 c c4 pt16b 0 c c5 pt16a 0 t c5 pt16a 0 t d6 pt15b 0 c d6 pt15b 0 c b5 pt15a 0 t b5 pt15a 0 t e6 pt14b 0 c e6 pt14b 0 c c6 pt14a 0 t tdqs14 c6 pt14a 0 t tdqs14 a3 pt13b 0 c a3 pt13b 0 c gnd gnd0 0 gnd gnd0 0 b3 pt13a 0 t b3 pt13a 0 t f6 pt12b 0 c f6 pt12b 0 c d5 pt12a 0 t d5 pt12a 0 t f7 pt11b 0 c f7 pt11b 0 c e8 pt11a 0 t e8 pt11a 0 t g6 pt10b 0 c g6 pt10b 0 c e7 pt10a 0 t e7 pt10a 0 t gnd gnd0 0 gnd gnd0 0 gnd gnd0 0 gnd gnd0 0 a1 gnd - a1 gnd - a22 gnd - a22 gnd - ab1 gnd - ab1 gnd - lfecp/ec20 and lfecp/ec33 logic signal connections: 484 fpbga lfecp20/lfec20 lfecp/lfec33 ball number ball function bank lvds dual function ball number ball function bank lvds dual function
4-59 pinout information lattice semiconductor latticeecp/ ec family data sheet ab22 gnd - ab22 gnd - h15 gnd - h15 gnd - h8 gnd - h8 gnd - j10 gnd - j10 gnd - j11 gnd - j11 gnd - j12 gnd - j12 gnd - j13 gnd - j13 gnd - j14 gnd - j14 gnd - j9 gnd - j9 gnd - k10 gnd - k10 gnd - k11 gnd - k11 gnd - k12 gnd - k12 gnd - k13 gnd - k13 gnd - k14 gnd - k14 gnd - k9 gnd - k9 gnd - l10 gnd - l10 gnd - l11 gnd - l11 gnd - l12 gnd - l12 gnd - l13 gnd - l13 gnd - l14 gnd - l14 gnd - l9 gnd - l9 gnd - m10 gnd - m10 gnd - m11 gnd - m11 gnd - m12 gnd - m12 gnd - m13 gnd - m13 gnd - m14 gnd - m14 gnd - m9 gnd - m9 gnd - n10 gnd - n10 gnd - n11 gnd - n11 gnd - n12 gnd - n12 gnd - n13 gnd - n13 gnd - n14 gnd - n14 gnd - n9 gnd - n9 gnd - p10 gnd - p10 gnd - p11 gnd - p11 gnd - p12 gnd - p12 gnd - p13 gnd - p13 gnd - p14 gnd - p14 gnd - p9 gnd - p9 gnd - r15 gnd - r15 gnd - r8 gnd - r8 gnd - j16 vcc - j16 vcc - j7 vcc - j7 vcc - k16 vcc - k16 vcc - lfecp/ec20 and lfecp/ec33 logic signal connections: 484 fpbga lfecp20/lfec20 lfecp/lfec33 ball number ball function bank lvds dual function ball number ball function bank lvds dual function
4-60 pinout information lattice semiconductor latticeecp/ ec family data sheet k17 vcc - k17 vcc - k6 vcc - k6 vcc - k7 vcc - k7 vcc - l17 vcc - l17 vcc - l6 vcc - l6 vcc - m17 vcc - m17 vcc - m6 vcc - m6 vcc - n16 vcc - n16 vcc - n17 vcc - n17 vcc - n6 vcc - n6 vcc - n7 vcc - n7 vcc - p16 vcc - p16 vcc - p7 vcc - p7 vcc - g11 vccio0 0 g11 vccio0 0 h10 vccio0 0 h10 vccio0 0 h11 vccio0 0 h11 vccio0 0 h9 vccio0 0 h9 vccio0 0 g12 vccio1 1 g12 vccio1 1 h12 vccio1 1 h12 vccio1 1 h13 vccio1 1 h13 vccio1 1 h14 vccio1 1 h14 vccio1 1 j15 vccio2 2 j15 vccio2 2 k15 vccio2 2 k15 vccio2 2 l15 vccio2 2 l15 vccio2 2 l16 vccio2 2 l16 vccio2 2 m15 vccio3 3 m15 vccio3 3 m16 vccio3 3 m16 vccio3 3 n15 vccio3 3 n15 vccio3 3 p15 vccio3 3 p15 vccio3 3 r12 vccio4 4 r12 vccio4 4 r13 vccio4 4 r13 vccio4 4 r14 vccio4 4 r14 vccio4 4 t12 vccio4 4 t12 vccio4 4 r10 vccio5 5 r10 vccio5 5 r11 vccio5 5 r11 vccio5 5 r9 vccio5 5 r9 vccio5 5 t11 vccio5 5 t11 vccio5 5 m7 vccio6 6 m7 vccio6 6 m8 vccio6 6 m8 vccio6 6 n8 vccio6 6 n8 vccio6 6 p8 vccio6 6 p8 vccio6 6 j8 vccio7 7 j8 vccio7 7 k8 vccio7 7 k8 vccio7 7 l7 vccio7 7 l7 vccio7 7 lfecp/ec20 and lfecp/ec33 logic signal connections: 484 fpbga lfecp20/lfec20 lfecp/lfec33 ball number ball function bank lvds dual function ball number ball function bank lvds dual function
4-61 pinout information lattice semiconductor latticeecp/ ec family data sheet l8 vccio7 7 l8 vccio7 7 g15 vccaux - g15 vccaux - g16 vccaux - g16 vccaux - g7 vccaux - g7 vccaux - g8 vccaux - g8 vccaux - h16 vccaux - h16 vccaux - h7 vccaux - h7 vccaux - r16 vccaux - r16 vccaux - r7 vccaux - r7 vccaux - t15 vccaux - t15 vccaux - t16 vccaux - t16 vccaux - t7 vccaux - t7 vccaux - t8 vccaux - t8 vccaux - j6 vcc 1 - j6 vccpll - j17 vcc 1 - j17 vccpll - p6 vcc 1 - p6 vccpll - p17 vcc 1 - p17 vccpll - a2 nc - a2 nc - ab2 nc - ab2 nc - a21 nc - a21 nc - 1. tied to v ccpll. lfecp/ec20 and lfecp/ec33 logic signal connections: 484 fpbga lfecp20/lfec20 lfecp/lfec33 ball number ball function bank lvds dual function ball number ball function bank lvds dual function
4-62 pinout information lattice semiconductor latticeecp/ ec family data sheet lfecp/ec20, lfecp/ec33 logic si gnal connections: 672 fpbga lfec20/lfecp20 lfecp/ec33 ball number ball function bank lvds dual function ball number ball function bank lvds dual function gnd gnd7 7 gnd gnd7 7 e3 pl2a 7 t vref2_7 e3 pl2a 7 t vref2_7 e4 pl2b 7 c vref1_7 e4 pl2b 7 c vref1_7 e5 nc - e5 pl6a 7 t ldqs6 d5 nc - d5 pl6b 7 c f4 nc - f4 pl7a 7 t f5 nc - f5 pl7b 7 c c3 nc - c3 pl8a 7 t d3 nc - d3 pl8b 7 c c2 nc - c2 pl9a 7 t --- gndgnd77 b2 nc - b2 pl9b 7 c b1 pl3a 7 t b1 pl10a 7 t c1 pl3b 7 c c1 pl10b 7 c f3 pl4a 7 t f3 pl11a 7 t g3 pl4b 7 c g3 pl11b 7 c d2 pl5a 7 t d2 pl12a 7 t e2 pl5b 7 c e2 pl12b 7 c --- gndgnd77 d1 pl6a 7 t ldqs6 d1 pl14a 7 t ldqs14 e1 pl6b 7 c e1 pl14b 7 c f2 pl7a 7 t f2 pl15a 7 t g2 pl7b 7 c g2 pl15b 7 c f6 pl8a 7 t lum0_pllt_in_a f6 pl16a 7 t lum0_pllt_in_a g6 pl8b 7 c lum0_pllc_in_a g6 pl16b 7 c lum0_pllc_in_a h4 pl9a 7 t lum0_pllt_fb_a h4 pl17a 7 t lum0_pllt_fb_a gnd gnd7 7 gnd gnd7 7 g4 pl9b 7 c lum0_pllc_fb_a g4 pl17b 7 c lum0_pllc_fb_a h6 nc - h6 pl19a 7 t j7 nc - j7 pl19b 7 c g5 nc - g5 pl20a 7 t h5 nc - h5 pl20b 7 c h3 nc - h3 pl21a 7 t j3 nc - j3 pl21b 7 c h2 nc - h2 pl22a 7 t --- gndgnd77 j2 nc - j2 pl22b 7 c j4 pl11a 7 t j4 pl23a 7 t ldqs23 j5 pl11b 7 c j5 pl23b 7 c k4 pl12a 7 t k4 pl24a 7 t k5 pl12b 7 c k5 pl24b 7 c j6 pl13a 7 t j6 pl25a 7 t
4-63 pinout information lattice semiconductor latticeecp/ ec family data sheet k6 pl13b 7 c k6 pl25b 7 c f1 pl14a 7 t f1 pl26a 7 t gnd gnd7 7 gnd gnd7 7 g1 pl14b 7 c g1 pl26b 7 c h1 pl15a 7 t h1 pl27a 7 t j1 pl15b 7 c j1 pl27b 7 c k2 pl16a 7 t k2 pl28a 7 t k1 pl16b 7 c k1 pl28b 7 c k3 pl17a 7 t k3 pl29a 7 t l3 pl17b 7 c l3 pl29b 7 c l2 pl18a 7 t l2 pl30a 7 t gnd gnd7 7 gnd gnd7 7 l1 pl18b 7 c l1 pl30b 7 c m3 pl19a 7 t ldqs19 m3 pl31a 7 t ldqs31 m4 pl19b 7 c m4 pl31b 7 c m1 pl20a 7 t m1 pl32a 7 t m2 pl20b 7 c m2 pl32b 7 c l4 pl21a 7 t l4 pl33a 7 t l5 pl21b 7 c l5 pl33b 7 c n2 pl22a 7 t pclkt7_0 n2 pl34a 7 t pclkt7_0 gnd gnd7 7 gnd gnd7 7 n1 pl22b 7 c pclkc7_0 n1 pl34b 7 c pclkc7_0 n3 xres 6 n3 xres 6 p1 pl24a 6 t p1 pl36a 6 t p2 pl24b 6 c p2 pl36b 6 c l7 pl25a 6 t l7 pl37a 6 t l6 pl25b 6 c l6 pl37b 6 c n4 pl26a 6 t n4 pl38a 6 t n5 pl26b 6 c n5 pl38b 6 c r1 pl27a 6 t r1 pl39a 6 t gnd gnd6 6 gnd gnd6 6 r2 pl27b 6 c r2 pl39b 6 c p4 pl28a 6 t ldqs28 p4 pl40a 6 t ldqs40 p3 pl28b 6 c p3 pl40b 6 c m5 pl29a 6 t m5 pl41a 6 t m6 pl29b 6 c m6 pl41b 6 c t1 pl30a 6 t t1 pl42a 6 t t2 pl30b 6 c t2 pl42b 6 c r4 pl31a 6 t r4 pl43a 6 t gnd gnd6 6 gnd gnd6 6 r3 pl31b 6 c r3 pl43b 6 c n6 pl32a 6 t n6 pl44a 6 t lfecp/ec20, lfecp/ec33 logic signal connections: 672 fpbga (cont.) lfec20/lfecp20 lfecp/ec33 ball number ball function bank lvds dual function ball number ball function bank lvds dual function
4-64 pinout information lattice semiconductor latticeecp/ ec family data sheet p5 pl32b 6 c p5 pl44b 6 c p6 pl33a 6 t p6 pl45a 6 t r5 pl33b 6 c r5 pl45b 6 c u1 pl34a 6 t u1 pl46a 6 t u2 pl34b 6 c u2 pl46b 6 c t3 pl35a 6 t t3 pl47a 6 t gnd gnd6 6 gnd gnd6 6 t4 pl35b 6 c t4 pl47b 6 c r6 pl36a 6 t ldqs36 r6 pl48a 6 t ldqs48 t5 pl36b 6 c t5 pl48b 6 c t6 pl37a 6 t t6 pl49a 6 t u5 pl37b 6 c u5 pl49b 6 c u3 pl38a 6 t u3 pl50a 6 t u4 pl38b 6 c u4 pl50b 6 c v1 pl39a 6 t v1 pl51a 6 t gnd gnd6 6 gnd gnd6 6 v2 pl39b 6 c v2 pl51b 6 c u7 tck 6 u7 tck 6 v4 tdi 6 v4 tdi 6 v5 tms 6 v5 tms 6 v3 tdo 6 v3 tdo 6 u6 vccj 6 u6 vccj 6 w1 pl41a 6 t llm0_pllt_in_a w1 pl53a 6 t llm0_pllt_in_a w2 pl41b 6 c llm0_pllc_in_a w2 pl53b 6 c llm0_pllc_in_a v6 pl42a 6 t llm0_pllt_fb_a v6 pl54a 6 t llm0_pllt_fb_a w6 pl42b 6 c llm0_pllc_fb_a w6 pl54b 6 c llm0_pllc_fb_a y1 pl43a 6 t y1 pl55a 6 t y2 pl43b 6 c y2 pl55b 6 c w3 pl44a 6 t w3 pl56a 6 t gnd gnd6 6 gnd gnd6 6 w4 pl44b 6 c w4 pl56b 6 c aa1 pl45a 6 t ldqs45 aa1 pl57a 6 t ldqs57 ab1 pl45b 6 c ab1 pl57b 6 c y4 pl46a 6 t y4 pl58a 6 t y3 pl46b 6 c y3 pl58b 6 c ac1 pl47a 6 t ac1 pl59a 6 t ab2 pl47b 6 c ab2 pl59b 6 c aa2 nc - aa2 pl60a 6 t --- gndgnd66 aa3 nc - aa3 pl60b 6 c w5 nc - w5 pl61a 6 t y5 nc - y5 pl61b 6 c lfecp/ec20, lfecp/ec33 logic signal connections: 672 fpbga (cont.) lfec20/lfecp20 lfecp/ec33 ball number ball function bank lvds dual function ball number ball function bank lvds dual function
4-65 pinout information lattice semiconductor latticeecp/ ec family data sheet y6 nc - y6 pl62a 6 t w7 nc - w7 pl62b 6 c aa4 nc - aa4 pl63a 6 t ab3 nc - ab3 pl63b 6 c ac2 nc - ac2 pl64a 6 t --- gndgnd66 ac3 nc - ac3 pl64b 6 c aa5 nc - aa5 pl65a 6 t ldqs65 ab5 nc - ab5 pl65b 6 c ad3 nc - ad3 pl66a 6 t ad2 nc - ad2 pl66b 6 c ae1 nc - ae1 pl67a 6 t ad1 nc - ad1 pl67b 6 c ab4 pl48a 6 t vref1_6 ab4 pl68a 6 t vref1_6 ac4 pl48b 6 c vref2_6 ac4 pl68b 6 c vref2_6 gnd gnd6 6 gnd gnd6 6 gnd gnd5 5 gnd gnd5 5 ab6 pb2a 5 t ab6 pb2a 5 t aa6 pb2b 5 c aa6 pb2b 5 c ac7 pb3a 5 t ac7 pb3a 5 t y8 pb3b 5 c y8 pb3b 5 c ab7 pb4a 5 t ab7 pb4a 5 t aa7 pb4b 5 c aa7 pb4b 5 c ac6 pb5a 5 t ac6 pb5a 5 t ac5 pb5b 5 c ac5 pb5b 5 c ab8 pb6a 5 t bdqs6 ab8 pb6a 5 t bdqs6 ac8 pb6b 5 c ac8 pb6b 5 c ae2 pb7a 5 t ae2 pb7a 5 t aa8 pb7b 5 c aa8 pb7b 5 c af2 pb8a 5 t af2 pb8a 5 t y9 pb8b 5 c y9 pb8b 5 c ad5 pb9a 5 t ad5 pb9a 5 t gnd gnd5 5 gnd gnd5 5 ad4 pb9b 5 c ad4 pb9b 5 c ad8 pb10a 5 t ad8 pb10a 5 t ac9 pb10b 5 c ac9 pb10b 5 c ae3 pb11a 5 t ae3 pb11a 5 t ab9 pb11b 5 c ab9 pb11b 5 c af3 pb12a 5 t af3 pb12a 5 t ad9 pb12b 5 c ad9 pb12b 5 c ae4 pb13a 5 t ae4 pb13a 5 t gnd gnd5 5 gnd gnd5 5 lfecp/ec20, lfecp/ec33 logic signal connections: 672 fpbga (cont.) lfec20/lfecp20 lfecp/ec33 ball number ball function bank lvds dual function ball number ball function bank lvds dual function
4-66 pinout information lattice semiconductor latticeecp/ ec family data sheet af4 pb13b 5 c af4 pb13b 5 c ae5 pb14a 5 t bdqs14 ae5 pb14a 5 t bdqs14 aa9 pb14b 5 c aa9 pb14b 5 c af5 pb15a 5 t af5 pb15a 5 t y10 pb15b 5 c y10 pb15b 5 c ad6 pb16a 5 t ad6 pb16a 5 t ac10 pb16b 5 c ac10 pb16b 5 c af6 pb17a 5 t af6 pb17a 5 t gnd gnd5 5 gnd gnd5 5 ae6 pb17b 5 c ae6 pb17b 5 c af7 pb18a 5 t af7 pb18a 5 t ab10 pb18b 5 c ab10 pb18b 5 c ae7 pb19a 5 t ae7 pb19a 5 t ad10 pb19b 5 c ad10 pb19b 5 c ad7 pb20a 5 t ad7 pb20a 5 t aa10 pb20b 5 c aa10 pb20b 5 c af8 pb21a 5 t af8 pb21a 5 t gnd gnd5 5 gnd gnd5 5 af9 pb21b 5 c af9 pb21b 5 c ad11 pb22a 5 t bdqs22 ad11 pb22a 5 t bdqs22 y11 pb22b 5 c y11 pb22b 5 c ae8 pb23a 5 t ae8 pb23a 5 t ac11 pb23b 5 c ac11 pb23b 5 c af10 pb24a 5 t af10 pb24a 5 t ab11 pb24b 5 c ab11 pb24b 5 c ae10 pb25a 5 t ae10 pb25a 5 t gnd gnd5 5 gnd gnd5 5 ae9 pb25b 5 c ae9 pb25b 5 c aa11 pb26a 5 t aa11 pb26a 5 t y12 pb26b 5 c y12 pb26b 5 c ae11 pb27a 5 t ae11 pb27a 5 t af11 pb27b 5 c af11 pb27b 5 c af12 pb28a 5 t af12 pb28a 5 t ae12 pb28b 5 c ae12 pb28b 5 c ad12 pb29a 5 t ad12 pb29a 5 t gnd gnd5 5 gnd gnd5 5 ac12 pb29b 5 c ac12 pb29b 5 c aa12 pb30a 5 t bdqs30 aa12 pb30a 5 t bdqs30 ab12 pb30b 5 c ab12 pb30b 5 c ae13 pb31a 5 t ae13 pb31a 5 t af13 pb31b 5 c af13 pb31b 5 c ad13 pb32a 5 t vref2_5 ad13 pb32a 5 t vref2_5 lfecp/ec20, lfecp/ec33 logic signal connections: 672 fpbga (cont.) lfec20/lfecp20 lfecp/ec33 ball number ball function bank lvds dual function ball number ball function bank lvds dual function
4-67 pinout information lattice semiconductor latticeecp/ ec family data sheet ac13 pb32b 5 c vref1_5 ac13 pb32b 5 c vref1_5 af14 pb33a 5 t pclkt5_0 af14 pb33a 5 t pclkt5_0 gnd gnd5 5 gnd gnd5 5 ae14 pb33b 5 c pclkc5_0 ae14 pb33b 5 c pclkc5_0 aa13 pb34a 4 t writen aa13 pb34a 4 t writen ab13 pb34b 4 c cs1n ab13 pb34b 4 c cs1n ad14 pb35a 4 t vref1_4 ad14 pb35a 4 t vref1_4 aa14 pb35b 4 c csn aa14 pb35b 4 c csn ac14 pb36a 4 t vref2_4 ac14 pb36a 4 t vref2_4 ab14 pb36b 4 c d0/spid7 ab14 pb36b 4 c d0/spid7 af15 pb37a 4 t d2/spid5 af15 pb37a 4 t d2/spid5 gnd gnd4 4 gnd gnd4 4 ae15 pb37b 4 c d1/spid6 ae15 pb37b 4 c d1/spid6 ad15 pb38a 4 t bdqs38 ad15 pb38a 4 t bdqs38 ac15 pb38b 4 c d3/spid4 ac15 pb38b 4 c d3/spid4 af16 pb39a 4 t af16 pb39a 4 t y14 pb39b 4 c d4/spid3 y14 pb39b 4 c d4/spid3 ae16 pb40a 4 t ae16 pb40a 4 t ab15 pb40b 4 c d5/spid2 ab15 pb40b 4 c d5/spid2 af17 pb41a 4 t af17 pb41a 4 t gnd gnd4 4 gnd gnd4 4 ae17 pb41b 4 c d6/spid1 ae17 pb41b 4 c d6/spid1 y15 pb42a 4 t y15 pb42a 4 t aa15 pb42b 4 c aa15 pb42b 4 c ad17 pb43a 4 t ad17 pb43a 4 t y16 pb43b 4 c y16 pb43b 4 c ad18 pb44a 4 t ad18 pb44a 4 t ac16 pb44b 4 c ac16 pb44b 4 c ae18 pb45a 4 t ae18 pb45a 4 t gnd gnd4 4 gnd gnd4 4 af18 pb45b 4 c af18 pb45b 4 c ad16 pb46a 4 t bdqs46 ad16 pb46a 4 t bdqs46 ab16 pb46b 4 c ab16 pb46b 4 c af19 pb47a 4 t af19 pb47a 4 t aa16 pb47b 4 c aa16 pb47b 4 c aa17 pb48a 4 t aa17 pb48a 4 t y17 pb48b 4 c y17 pb48b 4 c af21 pb49a 4 t af21 pb49a 4 t gnd gnd4 4 gnd gnd4 4 af20 pb49b 4 c af20 pb49b 4 c ae21 pb50a 4 t ae21 pb50a 4 t ac17 pb50b 4 c ac17 pb50b 4 c lfecp/ec20, lfecp/ec33 logic signal connections: 672 fpbga (cont.) lfec20/lfecp20 lfecp/ec33 ball number ball function bank lvds dual function ball number ball function bank lvds dual function
4-68 pinout information lattice semiconductor latticeecp/ ec family data sheet af22 pb51a 4 t af22 pb51a 4 t ab17 pb51b 4 c ab17 pb51b 4 c ae22 pb52a 4 t ae22 pb52a 4 t aa18 pb52b 4 c aa18 pb52b 4 c ae19 pb53a 4 t ae19 pb53a 4 t gnd gnd4 4 gnd gnd4 4 ae20 pb53b 4 c ae20 pb53b 4 c aa19 pb54a 4 t bdqs54 aa19 pb54a 4 t bdqs54 y18 pb54b 4 c y18 pb54b 4 c af23 pb55a 4 t af23 pb55a 4 t aa20 pb55b 4 c aa20 pb55b 4 c ac18 pb56a 4 t ac18 pb56a 4 t ab18 pb56b 4 c ab18 pb56b 4 c af24 pb57a 4 t af24 pb57a 4 t --- gndgnd44 ae23 pb57b 4 c ae23 pb57b 4 c ad19 nc - ad19 pb58a 4 t ad20 nc - ad20 pb58b 4 c ac19 nc - ac19 pb59a 4 t ab19 nc - ab19 pb59b 4 c ad21 nc - ad21 pb60a 4 t ac20 nc - ac20 pb60b 4 c af25 nc - af25 pb61a 4 t --- gndgnd44 ae25 nc - ae25 pb61b 4 c ab21 nc - ab21 pb62a 4 t bdqs62 ab20 nc - ab20 pb62b 4 c ae24 nc - ae24 pb63a 4 t ad23 nc - ad23 pb63b 4 c ad22 nc - ad22 pb64a 4 t ac21 nc - ac21 pb64b 4 c ac22 nc - ac22 pb65a 4 t ab22 nc - ab22 pb65b 4 c gnd gnd4 4 gnd gnd4 4 gnd gnd3 3 gnd gnd3 3 ac23 pr48b 3 c vref2_3 ac23 pr68b 3 c vref2_3 ac24 pr48a 3 t vref1_3 ac24 pr68a 3 t vref1_3 ad24 nc - ad24 pr67b 3 c ad25 nc - ad25 pr67a 3 t ae26 nc - ae26 pr66b 3 c ad26 nc - ad26 pr66a 3 t y20 nc - y20 pr65b 3 c lfecp/ec20, lfecp/ec33 logic signal connections: 672 fpbga (cont.) lfec20/lfecp20 lfecp/ec33 ball number ball function bank lvds dual function ball number ball function bank lvds dual function
4-69 pinout information lattice semiconductor latticeecp/ ec family data sheet y19 nc - y19 pr65a 3 t rdqs65 aa23 nc - aa23 pr64b 3 c --- gndgnd33 aa22 nc - aa22 pr64a 3 t ab23 nc - ab23 pr63b 3 c ab24 nc - ab24 pr63a 3 t y21 nc - y21 pr62b 3 c aa21 nc - aa21 pr62a 3 t y23 nc - y23 pr61b 3 c y22 nc - y22 pr61a 3 t aa24 nc - aa24 pr60b 3 c --- gndgnd33 y24 nc - y24 pr60a 3 t ac25 pr47b 3 c ac25 pr59b 3 c ac26 pr47a 3 t ac26 pr59a 3 t ab25 pr46b 3 c ab25 pr58b 3 c aa25 pr46a 3 t aa25 pr58a 3 t ab26 pr45b 3 c ab26 pr57b 3 c aa26 pr45a 3 t rdqs45 aa26 pr57a 3 t rdqs57 w23 pr44b 3 c rlm0_pllc_in_a w23 pr56b 3 c rlm0_pllc_in_a gnd gnd3 3 gnd gnd3 3 w24 pr44a 3 t rlm0_pllt_in_a w24 pr56a 3 t rlm0_pllt_in_a w22 pr43b 3 c rlm0_pllc_fb_a w22 pr55b 3 c rlm0_pllc_fb_a w21 pr43a 3 t rlm0_pllt_fb_a w21 pr55a 3 t rlm0_pllt_fb_a y25 pr42b 3 c di/csspin y25 pr54b 3 c di/csspin y26 pr42a 3 t dout/cson y26 pr54a 3 t dout/cson w25 pr41b 3 c busy/sispi w25 pr53b 3 c busy/sispi w26 pr41a 3 t d7/spid0 w26 pr53a 3 t d7/spid0 v24 cfg2 3 v24 cfg2 3 v21 cfg1 3 v21 cfg1 3 v23 cfg0 3 v23 cfg0 3 v22 programn 3 v22 programn 3 v20 cclk 3 v20 cclk 3 v25 initn 3 v25 initn 3 u20 done 3 u20 done 3 v26 pr39b 3 c v26 pr51b 3 c gnd gnd3 3 gnd gnd3 3 u26 pr39a 3 t u26 pr51a 3 t u24 pr38b 3 c u24 pr50b 3 c u25 pr38a 3 t u25 pr50a 3 t u23 pr37b 3 c u23 pr49b 3 c u22 pr37a 3 t u22 pr49a 3 t lfecp/ec20, lfecp/ec33 logic signal connections: 672 fpbga (cont.) lfec20/lfecp20 lfecp/ec33 ball number ball function bank lvds dual function ball number ball function bank lvds dual function
4-70 pinout information lattice semiconductor latticeecp/ ec family data sheet u21 pr36b 3 c u21 pr48b 3 c t21 pr36a 3 t rdqs36 t21 pr48a 3 t rdqs48 t25 pr35b 3 c t25 pr47b 3 c gnd gnd3 3 gnd gnd3 3 t26 pr35a 3 t t26 pr47a 3 t t22 pr34b 3 c t22 pr46b 3 c t23 pr34a 3 t t23 pr46a 3 t t24 pr33b 3 c t24 pr45b 3 c r23 pr33a 3 t r23 pr45a 3 t r25 pr32b 3 c r25 pr44b 3 c r24 pr32a 3 t r24 pr44a 3 t r26 pr31b 3 c r26 pr43b 3 c gnd gnd3 3 gnd gnd3 3 p26 pr31a 3 t p26 pr43a 3 t r21 pr30b 3 c r21 pr42b 3 c r22 pr30a 3 t r22 pr42a 3 t p25 pr29b 3 c p25 pr41b 3 c p24 pr29a 3 t p24 pr41a 3 t p23 pr28b 3 c p23 pr40b 3 c p22 pr28a 3 t rdqs28 p22 pr40a 3 t rdqs40 n26 pr27b 3 c n26 pr39b 3 c gnd gnd3 3 gnd gnd3 3 m26 pr27a 3 t m26 pr39a 3 t n21 pr26b 3 c n21 pr38b 3 c p21 pr26a 3 t p21 pr38a 3 t n23 pr25b 3 c n23 pr37b 3 c n22 pr25a 3 t n22 pr37a 3 t n25 pr24b 3 c n25 pr36b 3 c n24 pr24a 3 t n24 pr36a 3 t l26 pr22b 2 c pclkc2_0 l26 pr34b 2 c pclkc2_0 gnd gnd2 2 gnd gnd2 2 k26 pr22a 2 t pclkt2_0 k26 pr34a 2 t pclkt2_0 m22 pr21b 2 c m22 pr33b 2 c m23 pr21a 2 t m23 pr33a 2 t m25 pr20b 2 c m25 pr32b 2 c m24 pr20a 2 t m24 pr32a 2 t m21 pr19b 2 c m21 pr31b 2 c l21 pr19a 2 t rdqs19 l21 pr31a 2 t rdqs31 l22 pr18b 2 c l22 pr30b 2 c gnd gnd2 2 gnd gnd2 2 l23 pr18a 2 t l23 pr30a 2 t l25 pr17b 2 c l25 pr29b 2 c lfecp/ec20, lfecp/ec33 logic signal connections: 672 fpbga (cont.) lfec20/lfecp20 lfecp/ec33 ball number ball function bank lvds dual function ball number ball function bank lvds dual function
4-71 pinout information lattice semiconductor latticeecp/ ec family data sheet l24 pr17a 2 t l24 pr29a 2 t k25 pr16b 2 c k25 pr28b 2 c j25 pr16a 2 t j25 pr28a 2 t j26 pr15b 2 c j26 pr27b 2 c h26 pr15a 2 t h26 pr27a 2 t h25 pr14b 2 c h25 pr26b 2 c gnd gnd2 2 gnd gnd2 2 j24 pr14a 2 t j24 pr26a 2 t k21 pr13b 2 c k21 pr25b 2 c k22 pr13a 2 t k22 pr25a 2 t k20 pr12b 2 c k20 pr24b 2 c j20 pr12a 2 t j20 pr24a 2 t k23 pr11b 2 c k23 pr23b 2 c k24 pr11a 2 t k24 pr23a 2 t rdqs23 j21 nc - j21 pr22b 2 c --- gndgnd22 j22 nc - j22 pr22a 2 t j23 nc - j23 pr21b 2 c h22 nc - h22 pr21a 2 t g26 nc - g26 pr20b 2 c f26 nc - f26 pr20a 2 t e26 nc - e26 pr19b 2 c e25 nc - e25 pr19a 2 t f25 pr9b 2 c rum0_pllc_fb_a f25 pr17b 2 c rum0_pllc_fb_a gnd gnd2 2 gnd gnd2 2 g25 pr9a 2 t rum0_pllt_fb_a g25 pr17a 2 t rum0_pllt_fb_a h23 pr8b 2 c rum0_pllc_in_a h23 pr16b 2 c rum0_pllc_in_a h24 pr8a 2 t rum0_pllt_in_a h24 pr16a 2 t rum0_pllt_in_a h21 pr7b 2 c h21 pr15b 2 c g21 pr7a 2 t g21 pr15a 2 t d26 pr6b 2 c d26 pr14b 2 c d25 pr6a 2 t rdqs6 d25 pr14a 2 t rdqs14 f21 pr5b 2 c f21 pr13b 2 c --- gndgnd22 g22 pr5a 2 t g22 pr13a 2 t g24 pr4b 2 c g24 pr12b 2 c g23 pr4a 2 t g23 pr12a 2 t c26 pr3b 2 c c26 pr11b 2 c c25 pr3a 2 t c25 pr11a 2 t f24 nc - f24 pr9b 2 c --- gndgnd22 f23 nc - f23 pr9a 2 t lfecp/ec20, lfecp/ec33 logic signal connections: 672 fpbga (cont.) lfec20/lfecp20 lfecp/ec33 ball number ball function bank lvds dual function ball number ball function bank lvds dual function
4-72 pinout information lattice semiconductor latticeecp/ ec family data sheet e24 nc - e24 pr8b 2 c d24 nc - d24 pr8a 2 t e22 nc - e22 pr7b 2 c f22 nc - f22 pr7a 2 t e21 nc - e21 pr6b 2 c d22 nc - d22 pr6a 2 t rdqs6 e23 pr2b 2 c vref1_2 e23 pr2b 2 c vref1_2 d23 pr2a 2 t vref2_2 d23 pr2a 2 t vref2_2 gnd gnd2 2 gnd gnd2 2 gnd gnd1 1 gnd gnd1 1 g20 nc - g20 pt65b 1 c f20 nc - f20 pt65a 1 t d21 nc - d21 pt64b 1 c c21 nc - c21 pt64a 1 t c23 nc - c23 pt63b 1 c c22 nc - c22 pt63a 1 t b23 nc - b23 pt62b 1 c c24 nc - c24 pt62a 1 t tdqs62 d20 nc - d20 pt61b 1 c --- gndgnd11 e19 nc - e19 pt61a 1 t b25 nc - b25 pt60b 1 c b24 nc - b24 pt60a 1 t b26 nc - b26 pt59b 1 c a25 nc - a25 pt59a 1 t c20 nc - c20 pt58b 1 c c19 nc - c19 pt58a 1 t a24 pt57b 1 c a24 pt57b 1 c --- gndgnd11 a23 pt57a 1 t a23 pt57a 1 t e18 pt56b 1 c e18 pt56b 1 c d19 pt56a 1 t d19 pt56a 1 t f19 pt55b 1 c f19 pt55b 1 c b22 pt55a 1 t b22 pt55a 1 t g19 pt54b 1 c g19 pt54b 1 c b21 pt54a 1 t tdqs54 b21 pt54a 1 t tdqs54 d18 pt53b 1 c d18 pt53b 1 c gnd gnd1 1 gnd gnd1 1 c18 pt53a 1 t c18 pt53a 1 t f18 pt52b 1 c f18 pt52b 1 c a22 pt52a 1 t a22 pt52a 1 t g18 pt51b 1 c g18 pt51b 1 c lfecp/ec20, lfecp/ec33 logic signal connections: 672 fpbga (cont.) lfec20/lfecp20 lfecp/ec33 ball number ball function bank lvds dual function ball number ball function bank lvds dual function
4-73 pinout information lattice semiconductor latticeecp/ ec family data sheet a21 pt51a 1 t a21 pt51a 1 t e17 pt50b 1 c e17 pt50b 1 c b17 pt50a 1 t b17 pt50a 1 t c17 pt49b 1 c c17 pt49b 1 c gnd gnd1 1 gnd gnd1 1 d17 pt49a 1 t d17 pt49a 1 t f17 pt48b 1 c f17 pt48b 1 c e20 pt48a 1 t e20 pt48a 1 t g17 pt47b 1 c g17 pt47b 1 c b20 pt47a 1 t b20 pt47a 1 t e16 pt46b 1 c e16 pt46b 1 c a20 pt46a 1 t tdqs46 a20 pt46a 1 t tdqs46 a19 pt45b 1 c a19 pt45b 1 c gnd gnd1 1 gnd gnd1 1 b19 pt45a 1 t b19 pt45a 1 t d16 pt44b 1 c d16 pt44b 1 c c16 pt44a 1 t c16 pt44a 1 t f16 pt43b 1 c f16 pt43b 1 c a18 pt43a 1 t a18 pt43a 1 t g16 pt42b 1 c g16 pt42b 1 c b18 pt42a 1 t b18 pt42a 1 t a17 pt41b 1 c a17 pt41b 1 c gnd gnd1 1 gnd gnd1 1 a16 pt41a 1 t a16 pt41a 1 t d15 pt40b 1 c d15 pt40b 1 c b16 pt40a 1 t b16 pt40a 1 t e15 pt39b 1 c e15 pt39b 1 c c15 pt39a 1 t c15 pt39a 1 t f15 pt38b 1 c f15 pt38b 1 c g15 pt38a 1 t tdqs38 g15 pt38a 1 t tdqs38 b15 pt37b 1 c b15 pt37b 1 c gnd gnd1 1 gnd gnd1 1 a15 pt37a 1 t a15 pt37a 1 t e14 pt36b 1 c e14 pt36b 1 c g14 pt36a 1 t g14 pt36a 1 t d14 pt35b 1 c vref2_1 d14 pt35b 1 c vref2_1 e13 pt35a 1 t vref1_1 e13 pt35a 1 t vref1_1 f14 pt34b 1 c f14 pt34b 1 c c14 pt34a 1 t c14 pt34a 1 t b14 pt33b 0 c pclkc0_0 b14 pt33b 0 c pclkc0_0 gnd gnd0 0 gnd gnd0 0 a14 pt33a 0 t pclkt0_0 a14 pt33a 0 t pclkt0_0 lfecp/ec20, lfecp/ec33 logic signal connections: 672 fpbga (cont.) lfec20/lfecp20 lfecp/ec33 ball number ball function bank lvds dual function ball number ball function bank lvds dual function
4-74 pinout information lattice semiconductor latticeecp/ ec family data sheet d13 pt32b 0 c vref1_0 d13 pt32b 0 c vref1_0 c13 pt32a 0 t vref2_0 c13 pt32a 0 t vref2_0 a13 pt31b 0 c a13 pt31b 0 c b13 pt31a 0 t b13 pt31a 0 t f13 pt30b 0 c f13 pt30b 0 c f12 pt30a 0 t tdqs30 f12 pt30a 0 t tdqs30 a12 pt29b 0 c a12 pt29b 0 c gnd gnd0 0 gnd gnd0 0 b12 pt29a 0 t b12 pt29a 0 t a11 pt28b 0 c a11 pt28b 0 c b11 pt28a 0 t b11 pt28a 0 t d12 pt27b 0 c d12 pt27b 0 c c12 pt27a 0 t c12 pt27a 0 t b10 pt26b 0 c b10 pt26b 0 c a10 pt26a 0 t a10 pt26a 0 t g12 pt25b 0 c g12 pt25b 0 c gnd gnd0 0 gnd gnd0 0 a9 pt25a 0 t a9 pt25a 0 t e12 pt24b 0 c e12 pt24b 0 c b9 pt24a 0 t b9 pt24a 0 t f11 pt23b 0 c f11 pt23b 0 c a8 pt23a 0 t a8 pt23a 0 t d11 pt22b 0 c d11 pt22b 0 c c11 pt22a 0 t tdqs22 c11 pt22a 0 t tdqs22 b8 pt21b 0 c b8 pt21b 0 c gnd gnd0 0 gnd gnd0 0 b7 pt21a 0 t b7 pt21a 0 t e11 pt20b 0 c e11 pt20b 0 c a7 pt20a 0 t a7 pt20a 0 t g11 pt19b 0 c g11 pt19b 0 c c7 pt19a 0 t c7 pt19a 0 t g10 pt18b 0 c g10 pt18b 0 c c6 pt18a 0 t c6 pt18a 0 t c10 pt17b 0 c c10 pt17b 0 c gnd gnd0 0 gnd gnd0 0 d10 pt17a 0 t d10 pt17a 0 t f10 pt16b 0 c f10 pt16b 0 c a6 pt16a 0 t a6 pt16a 0 t e10 pt15b 0 c e10 pt15b 0 c c9 pt15a 0 t c9 pt15a 0 t g9 pt14b 0 c g9 pt14b 0 c d9 pt14a 0 t tdqs14 d9 pt14a 0 t tdqs14 lfecp/ec20, lfecp/ec33 logic signal connections: 672 fpbga (cont.) lfec20/lfecp20 lfecp/ec33 ball number ball function bank lvds dual function ball number ball function bank lvds dual function
4-75 pinout information lattice semiconductor latticeecp/ ec family data sheet a5 pt13b 0 c a5 pt13b 0 c gnd gnd0 0 gnd gnd0 0 a4 pt13a 0 t a4 pt13a 0 t f9 pt12b 0 c f9 pt12b 0 c b6 pt12a 0 t b6 pt12a 0 t e9 pt11b 0 c e9 pt11b 0 c c8 pt11a 0 t c8 pt11a 0 t g8 pt10b 0 c g8 pt10b 0 c b5 pt10a 0 t b5 pt10a 0 t a3 pt9b 0 c a3 pt9b 0 c gnd gnd0 0 gnd gnd0 0 a2 pt9a 0 t a2 pt9a 0 t f8 pt8b 0 c f8 pt8b 0 c b4 pt8a 0 t b4 pt8a 0 t e8 pt7b 0 c e8 pt7b 0 c b3 pt7a 0 t b3 pt7a 0 t d8 pt6b 0 c d8 pt6b 0 c g7 pt6a 0 t tdqs6 g7 pt6a 0 t tdqs6 c4 pt5b 0 c c4 pt5b 0 c c5 pt5a 0 t c5 pt5a 0 t e7 pt4b 0 c e7 pt4b 0 c d4 pt4a 0 t d4 pt4a 0 t f7 pt3b 0 c f7 pt3b 0 c d6 pt3a 0 t d6 pt3a 0 t d7 pt2b 0 c d7 pt2b 0 c e6 pt2a 0 t e6 pt2a 0 t gnd gnd0 0 gnd gnd0 0 k10 gnd - k10 gnd - k11 gnd - k11 gnd - k12 gnd - k12 gnd - k13 gnd - k13 gnd - k14 gnd - k14 gnd - k15 gnd - k15 gnd - k16 gnd - k16 gnd - l10 gnd - l10 gnd - l11 gnd - l11 gnd - l12 gnd - l12 gnd - l13 gnd - l13 gnd - l14 gnd - l14 gnd - l15 gnd - l15 gnd - l16 gnd - l16 gnd - l17 gnd - l17 gnd - lfecp/ec20, lfecp/ec33 logic signal connections: 672 fpbga (cont.) lfec20/lfecp20 lfecp/ec33 ball number ball function bank lvds dual function ball number ball function bank lvds dual function
4-76 pinout information lattice semiconductor latticeecp/ ec family data sheet m10 gnd - m10 gnd - m11 gnd - m11 gnd - m12 gnd - m12 gnd - m13 gnd - m13 gnd - m14 gnd - m14 gnd - m15 gnd - m15 gnd - m16 gnd - m16 gnd - m17 gnd - m17 gnd - n10 gnd - n10 gnd - n11 gnd - n11 gnd - n12 gnd - n12 gnd - n13 gnd - n13 gnd - n14 gnd - n14 gnd - n15 gnd - n15 gnd - n16 gnd - n16 gnd - n17 gnd - n17 gnd - p10 gnd - p10 gnd - p11 gnd - p11 gnd - p12 gnd - p12 gnd - p13 gnd - p13 gnd - p14 gnd - p14 gnd - p15 gnd - p15 gnd - p16 gnd - p16 gnd - p17 gnd - p17 gnd - r10 gnd - r10 gnd - r11 gnd - r11 gnd - r12 gnd - r12 gnd - r13 gnd - r13 gnd - r14 gnd - r14 gnd - r15 gnd - r15 gnd - r16 gnd - r16 gnd - r17 gnd - r17 gnd - t10 gnd - t10 gnd - t11 gnd - t11 gnd - t12 gnd - t12 gnd - t13 gnd - t13 gnd - t14 gnd - t14 gnd - t15 gnd - t15 gnd - t16 gnd - t16 gnd - t17 gnd - t17 gnd - u10 gnd - u10 gnd - u11 gnd - u11 gnd - lfecp/ec20, lfecp/ec33 logic signal connections: 672 fpbga (cont.) lfec20/lfecp20 lfecp/ec33 ball number ball function bank lvds dual function ball number ball function bank lvds dual function
4-77 pinout information lattice semiconductor latticeecp/ ec family data sheet u12 gnd - u12 gnd - u13 gnd - u13 gnd - u14 gnd - u14 gnd - u15 gnd - u15 gnd - u16 gnd - u16 gnd - u17 gnd - u17 gnd - h10 vcc - h10 vcc - h11 vcc - h11 vcc - h16 vcc - h16 vcc - h17 vcc - h17 vcc - h18 vcc - h18 vcc - h19 vcc - h19 vcc - h8 vcc - h8 vcc - h9 vcc - h9 vcc - j18 vcc - j18 vcc - j9 vcc - j9 vcc - k8 vcc - k8 vcc - l19 vcc - l19 vcc - m19 vcc - m19 vcc - n7 vcc - n7 vcc - r20 vcc - r20 vcc - r7 vcc - r7 vcc - t19 vcc - t19 vcc - v18 vcc - v18 vcc - v8 vcc - v8 vcc - v9 vcc - v9 vcc - w10 vcc - w10 vcc - w11 vcc - w11 vcc - w16 vcc - w16 vcc - w17 vcc - w17 vcc - w18 vcc - w18 vcc - w19 vcc - w19 vcc - w8 vcc - w8 vcc - w9 vcc - w9 vcc - h12 vccio0 0 h12 vccio0 0 h13 vccio0 0 h13 vccio0 0 j10 vccio0 0 j10 vccio0 0 j11 vccio0 0 j11 vccio0 0 j12 vccio0 0 j12 vccio0 0 j13 vccio0 0 j13 vccio0 0 h14 vccio1 1 h14 vccio1 1 h15 vccio1 1 h15 vccio1 1 lfecp/ec20, lfecp/ec33 logic signal connections: 672 fpbga (cont.) lfec20/lfecp20 lfecp/ec33 ball number ball function bank lvds dual function ball number ball function bank lvds dual function
4-78 pinout information lattice semiconductor latticeecp/ ec family data sheet j14 vccio1 1 j14 vccio1 1 j15 vccio1 1 j15 vccio1 1 j16 vccio1 1 j16 vccio1 1 j17 vccio1 1 j17 vccio1 1 k17 vccio2 2 k17 vccio2 2 k18 vccio2 2 k18 vccio2 2 l18 vccio2 2 l18 vccio2 2 m18 vccio2 2 m18 vccio2 2 n18 vccio2 2 n18 vccio2 2 n19 vccio2 2 n19 vccio2 2 p18 vccio3 3 p18 vccio3 3 p19 vccio3 3 p19 vccio3 3 r18 vccio3 3 r18 vccio3 3 r19 vccio3 3 r19 vccio3 3 t18 vccio3 3 t18 vccio3 3 u18 vccio3 3 u18 vccio3 3 v14 vccio4 4 v14 vccio4 4 v15 vccio4 4 v15 vccio4 4 v16 vccio4 4 v16 vccio4 4 v17 vccio4 4 v17 vccio4 4 w14 vccio4 4 w14 vccio4 4 w15 vccio4 4 w15 vccio4 4 v10 vccio5 5 v10 vccio5 5 v11 vccio5 5 v11 vccio5 5 v12 vccio5 5 v12 vccio5 5 v13 vccio5 5 v13 vccio5 5 w12 vccio5 5 w12 vccio5 5 w13 vccio5 5 w13 vccio5 5 p8 vccio6 6 p8 vccio6 6 p9 vccio6 6 p9 vccio6 6 r8 vccio6 6 r8 vccio6 6 r9 vccio6 6 r9 vccio6 6 t9 vccio6 6 t9 vccio6 6 u9 vccio6 6 u9 vccio6 6 k9 vccio7 7 k9 vccio7 7 l9 vccio7 7 l9 vccio7 7 m8 vccio7 7 m8 vccio7 7 m9 vccio7 7 m9 vccio7 7 n8 vccio7 7 n8 vccio7 7 n9 vccio7 7 n9 vccio7 7 g13 vccaux - g13 vccaux - h20 vccaux - h20 vccaux - lfecp/ec20, lfecp/ec33 logic signal connections: 672 fpbga (cont.) lfec20/lfecp20 lfecp/ec33 ball number ball function bank lvds dual function ball number ball function bank lvds dual function
4-79 pinout information lattice semiconductor latticeecp/ ec family data sheet h7 vccaux - h7 vccaux - j19 vccaux - j19 vccaux - j8 vccaux - j8 vccaux - k7 vccaux - k7 vccaux - l20 vccaux - l20 vccaux - m20 vccaux - m20 vccaux - m7 vccaux - m7 vccaux - n20 vccaux - n20 vccaux - p20 vccaux - p20 vccaux - p7 vccaux - p7 vccaux - t20 vccaux - t20 vccaux - t7 vccaux - t7 vccaux - t8 vccaux - t8 vccaux - v19 vccaux - v19 vccaux - v7 vccaux - v7 vccaux - w20 vccaux - w20 vccaux - y13 vccaux - y13 vccaux - y7 vccaux - y7 vccaux - k19 vcc 1 - k19vccpll- l8 vcc 1 - l8vccpll- u19 vcc 1 - u19vccpll- u8 vcc 1 - u8vccpll- 1. tied to v ccpll. lfecp/ec20, lfecp/ec33 logic signal connections: 672 fpbga (cont.) lfec20/lfecp20 lfecp/ec33 ball number ball function bank lvds dual function ball number ball function bank lvds dual function
4-80 pinout information lattice semiconductor latticeecp/ ec family data sheet thermal management thermal management is recommended as part of any sound fpga design methodology. to assess the thermal characteristics of a system, lattice sp ecifies a maximum allowable junction temperature in all device data sheets. designers must complete a thermal analysis of their specific design to ensure that the device and package do not exceed the junction temperature limits. refer to the thermal management document to find the device/package specific thermal values. for further information for further information regarding thermal management, refer to the following located on the lattice website at www.latticesemi.com . ?hermal management document ?echnical note tn1052 - power estimation and management for latticeecp/ec and latticexp devices ?ower calculator tool included wit h lattices isplever design tool, or as a standalone download from  www.latticesemi.com/software
www.latticesemi.com 5-1 order info_02.3 november 2005 data sheet ?2005 lattice semiconductor corp. all lattice trademarks, registered trademarks, patents, and disclaimers are as listed at www .latticesemi.com/legal. all other brand or product names are trademarks or registered trademarks of their respective holders. the specifications and information herein are subject to change without notice. part number description lfxxx xx x ? x xxxx x grade c = commercial i = industrial logic capacity 1* = 1.5k luts 3* = 3k luts 6 = 6k luts 10 = 10k luts 15 = 15k luts 20 = 20k luts 33 = 33k luts *not available in the latticeecp family. supply voltage e = 1.2v speed 3 = slowest 4 5 = fastest package t100 = 100-pin tqfp* t144 = 144-pin tqfp q208 = 208-pin pqfp f256 = 256-ball fpbga f484 = 484-ball fpbga f672 = 672-ball fpbga tn100 = 100-pin lead-free tqfp* tn144 = 144-pin lead-free tqfp qn208 = 208-pin lead-free pqfp fn256 = 256-ball lead-free fpbg a fn484 = 484-ball lead-free fpbg a fn672 = 672-ball lead-free fpbg a device family lattice ec (fpga) lattice ecp (ec fpga + dsp blocks) ordering information note: t latticeecp/ec devices are dual marked. for example, the commercial speed grade lfec20e-4f484c is also marked with industrial grade -3i (lfec20e-3f484i). the commercial grade is one speed grade faster than the associated dual mark industrial grade. the slowest co mmercial speed grade does not have industrial markings. the markings appear as follows: lfec20e- 4f484c-3i datecode ec latticeecp/ec family data sheet ordering information
5-2 ordering information lattice semiconductor latticeecp/ ec family data sheet conventional packaging latticeec commercial part number i/os grade package pins temp. luts lfec1e-3q208c 112 -3 pqfp 208 com 1.5k lfec1e-4q208c 112 -4 pqfp 208 com 1.5k lfec1e-5q208c 112 -5 pqfp 208 com 1.5k lfec1e-3t144c 97 -3 tqfp 144 com 1.5k lfec1e-4t144c 97 -4 tqfp 144 com 1.5k lfec1e-5t144c 97 -5 tqfp 144 com 1.5k lfec1e-3t100c 67 -3 tqfp 100 com 1.5k lfec1e-4t100c 67 -4 tqfp 100 com 1.5k lfec1e-5t100c 67 -5 tqfp 100 com 1.5k part number i/os grade package pins temp. luts lfec3e-3f256c 160 -3 fpbga 256 com 3.1k lfec3e-4f256c 160 -4 fpbga 256 com 3.1k lfec3e-5f256c 160 -5 fpbga 256 com 3.1k lfec3e-3q208c 145 -3 pqfp 208 com 3.1k lfec3e-4q208c 145 -4 pqfp 208 com 3.1k lfec3e-5q208c 145 -5 pqfp 208 com 3.1k lfec3e-3t144c 97 -3 tqfp 144 com 3.1k lfec3e-4t144c 97 -4 tqfp 144 com 3.1k lfec3e-5t144c 97 -5 tqfp 144 com 3.1k lfec3e-3t100c 67 -3 tqfp 100 com 3.1k lfec3e-4t100c 67 -4 tqfp 100 com 3.1k lfec3e-5t100c 67 -5 tqfp 100 com 3.1k part number i/os grade package pins temp. luts lfec6e-3f484c 224 -3 fpbga 484 com 6.1k lfec6e-4f484c 224 -4 fpbga 484 com 6.1k lfec6e-5f484c 224 -5 fpbga 484 com 6.1k lfec6e-3f256c 195 -3 fpbga 256 com 6.1k lfec6e-4f256c 195 -4 fpbga 256 com 6.1k lfec6e-5f256c 195 -5 fpbga 256 com 6.1k lfec6e-3q208c 147 -3 pqfp 208 com 6.1k lfec6e-4q208c 147 -4 pqfp 208 com 6.1k lfec6e-5q208c 147 -5 pqfp 208 com 6.1k lfec6e-3t144c 97 -3 tqfp 144 com 6.1k lfec6e-4t144c 97 -4 tqfp 144 com 6.1k lfec6e-5t144c 97 -5 tqfp 144 com 6.1k part number i/os grade package pins temp. luts lfec10e-3f484c 288 -3 fpbga 484 com 10.2k lfec10e-4f484c 288 -4 fpbga 484 com 10.2k lfec10e-5f484c 288 -5 fpbga 484 com 10.2k lfec10e-3f256c 195 -3 fpbga 256 com 10.2k
5-3 ordering information lattice semiconductor latticeecp/ ec family data sheet lfec10e-4f256c 195 -4 fpbga 256 com 10.2k lfec10e-5f256c 195 -5 fpbga 256 com 10.2k lfec10e-3q208c 147 -3 pqfp 208 com 10.2k lfec10e-4q208c 147 -4 pqfp 208 com 10.2k lfec10e-5q208c 147 -5 pqfp 208 com 10.2k part number i/os grade package pins temp. luts lfec15e-3f484c 352 -3 fpbga 484 com 15.3k lfec15e-4f484c 352 -4 fpbga 484 com 15.3k lfec15e-5f484c 352 -5 fpbga 484 com 15.3k lfec15e-3f256c 195 -3 fpbga 256 com 15.3k lfec15e-4f256c 195 -4 fpbga 256 com 15.3k lfec15e-5f256c 195 -5 fpbga 256 com 15.3k part number i/os grade package pins temp. luts lfec20e-3f672c 400 -3 fpbga 672 com 19.7k lfec20e-4f672c 400 -4 fpbga 672 com 19.7k lfec20e-5f672c 400 -5 fpbga 672 com 19.7k lfec20e-3f484c 360 -3 fpbga 484 com 19.7k lfec20e-4f484c 360 -4 fpbga 484 com 19.7k lfec20e-5f484c 360 -5 fpbga 484 com 19.7k part number i/os grade package pins temp. luts lfec33e-3f672c 496 -3 fpbga 672 com 32.8k lfec33e-4f672c 496 -4 fpbga 672 com 32.8k lfec33e-5f672c 496 -5 fpbga 672 com 32.8k lfec33e-3f484c 360 -3 fpbga 484 com 32.8k lfec33e-4f484c 360 -4 fpbga 484 com 32.8k lfec33e-5f484c 360 -5 fpbga 484 com 32.8k latticeec commerc ial (continued) part number i/os grade package pins temp. luts
5-4 ordering information lattice semiconductor latticeecp/ ec family data sheet latticeecp commercial part number i/os grade package pins temp. luts lfecp6e-3f484c 224 -3 fpbga 484 com 6.1k lfecp6e-4f484c 224 -4 fpbga 484 com 6.1k lfecp6e-5f484c 224 -5 fpbga 484 com 6.1k lfecp6e-3f256c 195 -3 fpbga 256 com 6.1k lfecp6e-4f256c 195 -4 fpbga 256 com 6.1k lfecp6e-5f256c 195 -5 fpbga 256 com 6.1k lfecp6e-3q208c 147 -3 pqfp 208 com 6.1k lfecp6e-4q208c 147 -4 pqfp 208 com 6.1k lfecp6e-5q208c 147 -5 pqfp 208 com 6.1k lfecp6e-3t144c 97 -3 tqfp 144 com 6.1k lfecp6e-4t144c 97 -4 tqfp 144 com 6.1k lfecp6e-5t144c 97 -5 tqfp 144 com 6.1k part number i/os grade package pins temp. luts lfecp10e-3f484c 288 -3 fpbga 484 com 10.2k lfecp10e-4f484c 288 -4 fpbga 484 com 10.2k lfecp10e-5f484c 288 -5 fpbga 484 com 10.2k lfecp10e-3f256c 195 -3 fpbga 256 com 10.2k lfecp10e-4f256c 195 -4 fpbga 256 com 10.2k lfecp10e-5f256c 195 -5 fpbga 256 com 10.2k lfecp10e-3q208c 147 -3 pqfp 208 com 10.2k lfecp10e-4q208c 147 -4 pqfp 208 com 10.2k lfecp10e-5q208c 147 -5 pqfp 208 com 10.2k part number i/os grade package pins temp. luts lfecp15e-3f484c 352 -3 fpbga 484 com 15.3k lfecp15e-4f484c 352 -4 fpbga 484 com 15.3k lfecp15e-5f484c 352 -5 fpbga 484 com 15.3k lfecp15e-3f256c 195 -3 fpbga 256 com 15.3k lfecp15e-4f256c 195 -4 fpbga 256 com 15.3k lfecp15e-5f256c 195 -5 fpbga 256 com 15.3k part number i/os grade package pins temp. luts lfecp20e-3f672c 400 -3 fpbga 672 com 19.7k lfecp20e-4f672c 400 -4 fpbga 672 com 19.7k lfecp20e-5f672c 400 -5 fpbga 672 com 19.7k lfecp20e-3f484c 360 -3 fpbga 484 com 19.7k lfecp20e-4f484c 360 -4 fpbga 484 com 19.7k lfecp20e-5f484c 360 -5 fpbga 484 com 19.7k part number i/os grade package pins temp. luts lfecp33e-3f672c 496 -3 fpbga 672 com 32.8k lfecp33e-4f672c 496 -4 fpbga 672 com 32.8k lfecp33e-5f672c 496 -5 fpbga 672 com 32.8k
5-5 ordering information lattice semiconductor latticeecp/ ec family data sheet lfecp33e-3f484c 360 -3 fpbga 484 com 32.8k lfecp33e-4f484c 360 -4 fpbga 484 com 32.8k lfecp33e-5f484c 360 -5 fpbga 484 com 32.8k latticeec industrial part number i/os grade package pins temp. luts lfec1e-3q208i 112 -3 pqfp 208 ind 1.5k lfec1e-4q208i 112 -4 pqfp 208 ind 1.5k lfec1e-3t144i 97 -3 tqfp 144 ind 1.5k lfec1e-4t144i 97 -4 tqfp 144 ind 1.5k lfec1e-3t100i 67 -3 tqfp 100 ind 1.5k lfec1e-4t100i 67 -4 tqfp 100 ind 1.5k part number i/os grade package pins temp. luts lfec3e-3f256i 160 -3 fpbga 256 ind 3.1k lfec3e-4f256i 160 -4 fpbga 256 ind 3.1k lfec3e-3q208i 145 -3 pqfp 208 ind 3.1k lfec3e-4q208i 145 -4 pqfp 208 ind 3.1k lfec3e-3t144i 97 -3 tqfp 144 ind 3.1k lfec3e-4t144i 97 -4 tqfp 144 ind 3.1k lfec3e-3t100i 67 -3 tqfp 100 ind 3.1k lfec3e-4t100i 67 -4 tqfp 100 ind 3.1k part number i/os grade package pins temp. luts lfec6e-3f484i 224 -3 fpbga 484 ind 6.1k lfec6e-4f484i 224 -4 fpbga 484 ind 6.1k lfec6e-3f256i 195 -3 fpbga 256 ind 6.1k lfec6e-4f256i 195 -4 fpbga 256 ind 6.1k lfec6e-3q208i 147 -3 pqfp 208 ind 6.1k lfec6e-4q208i 147 -4 pqfp 208 ind 6.1k lfec6e-3t144i 97 -3 tqfp 144 ind 6.1k lfec6e-4t144i 97 -4 tqfp 144 ind 6.1k part number i/os grade package pins temp. luts lfec10e-3f484i 288 -3 fpbga 484 ind 10.2k lfec10e-4f484i 288 -4 fpbga 484 ind 10.2k lfec10e-3f256i 195 -3 fpbga 256 ind 10.2k lfec10e-4f256i 195 -4 fpbga 256 ind 10.2k lfec10e-3 p208i 147 -3 pqfp 208 ind 10.2k lfec10e-4 p208i 147 -4 pqfp 208 ind 10.2k latticeecp commercial (continued) part number i/os grade package pins temp. luts
5-6 ordering information lattice semiconductor latticeecp/ ec family data sheet lfec15e-3f484i 352 -3 fpbga 484 ind 15.3k lfec15e-4f484i 352 -4 fpbga 484 ind 15.3k lfec15e-3f256i 195 -3 fpbga 256 ind 15.3k lfec15e-4f256i 195 -4 fpbga 256 ind 15.3k part number i/os grade package pins temp. luts lfec20e-3f672i 400 -3 fpbga 672 ind 19.7k lfec20e-4f672i 400 -4 fpbga 672 ind 19.7k lfec20e-3f484i 360 -3 fpbga 484 ind 19.7k lfec20e-4f484i 360 -4 fpbga 484 ind 19.7k part number i/os grade package pins temp. luts lfec33e-3f672i 496 -3 fpbga 672 ind 32.8 lfec33e-4f672i 496 -4 fpbga 672 ind 32.8 lfec33e-3f484i 360 -3 fpbga 484 ind 32.8 lfec33e-4f484i 360 -4 fpbga 484 ind 32.8 latticeecp industrial part number i/os grade package pins temp. luts lfecp6e-3f484i 224 -3 fpbga 484 ind 6.1k lfecp6e-4f484i 224 -4 fpbga 484 ind 6.1k lfecp6e-3f256i 195 -3 fpbga 256 ind 6.1k lfecp6e-4f256i 195 -4 fpbga 256 ind 6.1k lfecp6e-3q208i 147 -3 pqfp 208 ind 6.1k lfecp6e-4q208i 147 -4 pqfp 208 ind 6.1k lfecp6e-3t144i 97 -3 tqfp 144 ind 6.1k lfecp6e-4t144i 97 -4 tqfp 144 ind 6.1k part number i/os grade package pins temp. luts lfecp10e-3f484i 288 -3 fpbga 484 ind 10.2k lfecp10e-4f484i 288 -4 fpbga 484 ind 10.2k lfecp10e-3f256i 195 -3 fpbga 256 ind 10.2k lfecp10e-4f256i 195 -4 fpbga 256 ind 10.2k lfecp10e-3q208i 147 -3 pqfp 208 ind 10.2k lfecp10e-4q208i 147 -4 pqfp 208 ind 10.2k part number i/os grade package pins temp. luts lfecp15e-3f484i 352 -3 fpbga 484 ind 15.3k lfecp15e-4f484i 352 -4 fpbga 484 ind 15.3k lfecp15e-3f256i 195 -3 fpbga 256 ind 15.3k lfecp15e-4f256i 195 -4 fpbga 256 ind 15.3k latticeec industrial (continued) part number i/os grade package pins temp. luts
5-7 ordering information lattice semiconductor latticeecp/ ec family data sheet part number i/os grade package pins temp. luts lfecp20e-3f672i 400 -3 fpbga 672 ind 19.7k lfecp20e-4f672i 400 -4 fpbga 672 ind 19.7k lfecp20e-3f484i 360 -3 fpbga 484 ind 19.7k lfecp20e-4f484i 360 -4 fpbga 484 ind 19.7k part number i/os grade package pins temp. luts lfecp33e-3f672i 496 -3 fpbga 672 ind 32.8k lfecp33e-4f672i 496 -4 fpbga 672 ind 32.8k lfecp33e-3f484i 360 -3 fpbga 484 ind 32.8k lfecp33e-4f484i 360 -4 fpbga 484 ind 32.8k latticeecp industrial (continued)
5-8 ordering information lattice semiconductor latticeecp/ ec family data sheet lead-free packaging latticeec commercial part number i/os grade package pins/balls temp. luts lfec1e-3qn208c 112 -3 lead-free pqfp 208 com 1.5k lfec1e-4qn208c 112 -4 lead-free pqfp 208 com 1.5k lfec1e-5qn208c 112 -5 lead-free pqfp 208 com 1.5k lfec1e-3tn144c 97 -3 lead-free tqfp 144 com 1.5k lfec1e-4tn144c 97 -4 lead-free tqfp 144 com 1.5k lfec1e-5tn144c 97 -5 lead-free tqfp 144 com 1.5k lfec1e-3tn100c 67 -3 lead-free tqfp 100 com 1.5k lfec1e-4tn100c 67 -4 lead-free tqfp 100 com 1.5k lfec1e-5tn100c 67 -5 lead-free tqfp 100 com 1.5k part number i/os grade package pins/balls temp. luts lfec3e-3fn256c 160 -3 lead-free fpbga 256 com 3.1k lfec3e-4fn256c 160 -4 lead-free fpbga 256 com 3.1k lfec3e-5fn256c 160 -5 lead-free fpbga 256 com 3.1k lfec3e-3qn208c 145 -3 lead-free pqfp 208 com 3.1k lfec3e-4qn208c 145 -4 lead-free pqfp 208 com 3.1k lfec3e-5qn208c 145 -5 lead-free pqfp 208 com 3.1k lfec3e-3tn144c 97 -3 lead-free tqfp 144 com 3.1k lfec3e-4tn144c 97 -4 lead-free tqfp 144 com 3.1k lfec3e-5tn144c 97 -5 lead-free tqfp 144 com 3.1k lfec3e-3tn100c 67 -3 lead-free tqfp 100 com 3.1k lfec3e-4tn100c 67 -4 lead-free tqfp 100 com 3.1k lfec3e-5tn100c 67 -5 lead-free tqfp 100 com 3.1k part number i/os grade package pins/balls temp. luts lfec6e-3fn484c 224 -3 lead-free fpbga 484 com 6.1k lfec6e-4fn484c 224 -4 lead-free fpbga 484 com 6.1k lfec6e-5fn484c 224 -5 lead-free fpbga 484 com 6.1k lfec6e-3fn256c 195 -3 lead-free fpbga 256 com 6.1k lfec6e-4fn256c 195 -4 lead-free fpbga 256 com 6.1k lfec6e-5fn256c 195 -5 lead-free fpbga 256 com 6.1k lfec6e-3qn208c 147 -3 lead-free pqfp 208 com 6.1k lfec6e-4qn208c 147 -4 lead-free pqfp 208 com 6.1k lfec6e-5qn208c 147 -5 lead-free pqfp 208 com 6.1k lfec6e-3tn144c 97 -3 lead-free tqfp 144 com 6.1k lfec6e-4tn144c 97 -4 lead-free tqfp 144 com 6.1k lfec6e-5tn144c 97 -5 lead-free tqfp 144 com 6.1k part number i/os grade package pins/balls temp. luts lfec10e-3fn484c 288 -3 lead-free fpbga 484 com 10.2k lfec10e-4fn484c 288 -4 lead-free fpbga 484 com 10.2k lfec10e-5fn484c 288 -5 lead-free fpbga 484 com 10.2k lfec10e-3fn256c 195 -3 lead-free fpbga 256 com 10.2k
5-9 ordering information lattice semiconductor latticeecp/ ec family data sheet lfec10e-4fn256c 195 -4 lead-free fpbga 256 com 10.2k lfec10e-5fn256c 195 -5 lead-free fpbga 256 com 10.2k lfec10e-3qn208c 147 -3 lead-free pqfp 208 com 10.2k lfec10e-4qn208c 147 -4 lead-free pqfp 208 com 10.2k lfec10e-5qn208c 147 -5 lead-free pqfp 208 com 10.2k part number i/os grade package pins/balls temp. luts lfec15e-3fn484c 352 -3 lead-free fpbga 484 com 15.3k lfec15e-4fn484c 352 -4 lead-free fpbga 484 com 15.3k lfec15e-5fn484c 352 -5 lead-free fpbga 484 com 15.3k lfec15e-3fn256c 195 -3 lead-free fpbga 256 com 15.3k lfec15e-4fn256c 195 -4 lead-free fpbga 256 com 15.3k lfec15e-5fn256c 195 -5 lead-free fpbga 256 com 15.3k part number i/os grade package pins/balls temp. luts lfec20e-3fn672c 400 -3 lead-free fpbga 672 com 19.7k lfec20e-4fn672c 400 -4 lead-free fpbga 672 com 19.7k lfec20e-5fn672c 400 -5 lead-free fpbga 672 com 19.7k lfec20e-3fn484c 360 -3 lead-free fpbga 484 com 19.7k lfec20e-4fn484c 360 -4 lead-free fpbga 484 com 19.7k lfec20e-5fn484c 360 -5 lead-free fpbga 484 com 19.7k part number i/os grade package pins/balls temp. luts lfec33e-3fn672c 496 -3 lead-free fpbga 672 com 32.8k lfec33e-4fn672c 496 -4 lead-free fpbga 672 com 32.8k lfec33e-5fn672c 496 -5 lead-free fpbga 672 com 32.8k lfec33e-3fn484c 360 -3 lead-free fpbga 484 com 32.8k lfec33e-4fn484c 360 -4 lead-free fpbga 484 com 32.8k lfec33e-5fn484c 360 -5 lead-free fpbga 484 com 32.8k latticeec commerc ial (continued) part number i/os grade package pins/balls temp. luts
5-10 ordering information lattice semiconductor latticeecp/ ec family data sheet latticeecp commercial part number i/os grade package pins/balls temp. luts lfecp6e-3fn484c 224 -3 lead-free fpbga 484 com 6.1k lfecp6e-4fn484c 224 -4 lead-free fpbga 484 com 6.1k lfecp6e-5fn484c 224 -5 lead-free fpbga 484 com 6.1k lfecp6e-3fn256c 195 -3 lead-free fpbga 256 com 6.1k lfecp6e-4fn256c 195 -4 lead-free fpbga 256 com 6.1k lfecp6e-5fn256c 195 -5 lead-free fpbga 256 com 6.1k lfecp6e-3qn208c 147 -3 lead-free pqfp 208 com 6.1k lfecp6e-4qn208c 147 -4 lead-free pqfp 208 com 6.1k lfecp6e-5qn208c 147 -5 lead-free pqfp 208 com 6.1k lfecp6e-3tn144c 97 -3 lead-free tqfp 144 com 6.1k lfecp6e-4tn144c 97 -4 lead-free tqfp 144 com 6.1k lfecp6e-5tn144c 97 -5 lead-free tqfp 144 com 6.1k part number i/os grade package pins/balls temp. luts LFECP10E-3FN484C 288 -3 lead-free fpbga 484 com 10.2k lfecp10e-4fn484c 288 -4 lead-free fpbga 484 com 10.2k lfecp10e-5fn484c 288 -5 lead-free fpbga 484 com 10.2k lfecp10e-3fn256c 195 -3 lead-free fpbga 256 com 10.2k lfecp10e-4fn256c 195 -4 lead-free fpbga 256 com 10.2k lfecp10e-5fn256c 195 -5 lead-free fpbga 256 com 10.2k lfecp10e-3qn208c 147 -3 lead-free pqfp 208 com 10.2k lfecp10e-4qn208c 147 -4 lead-free pqfp 208 com 10.2k lfecp10e-5qn208c 147 -5 lead-free pqfp 208 com 10.2k part number i/os grade package pins/balls temp. luts lfecp15e-3fn484c 352 -3 lead-free fpbga 484 com 15.3k lfecp15e-4fn484c 352 -4 lead-free fpbga 484 com 15.3k lfecp15e-5fn484c 352 -5 lead-free fpbga 484 com 15.3k lfecp15e-3fn256c 195 -3 lead-free fpbga 256 com 15.3k lfecp15e-4fn256c 195 -4 lead-free fpbga 256 com 15.3k lfecp15e-5fn256c 195 -5 lead-free fpbga 256 com 15.3k part number i/os grade package pins/balls temp. luts lfecp20e-3fn672c 400 -3 lead-free fpbga 672 com 19.7k lfecp20e-4fn672c 400 -4 lead-free fpbga 672 com 19.7k lfecp20e-5fn672c 400 -5 lead-free fpbga 672 com 19.7k lfecp20e-3fn484c 400 -3 lead-free fpbga 484 com 19.7k lfecp20e-4fn484c 400 -4 lead-free fpbga 484 com 19.7k lfecp20e-5fn484c 400 -5 lead-free fpbga 484 com 19.7k part number i/os grade package pins/balls temp. luts lfecp33e-3fn672c 496 -3 lead-free fpbga 672 com 32.8k lfecp33e-4fn672c 496 -4 lead-free fpbga 672 com 32.8k lfecp33e-5fn672c 496 -5 lead-free fpbga 672 com 32.8k
5-11 ordering information lattice semiconductor latticeecp/ ec family data sheet lfecp33e-3fn484c 360 -3 lead-free fpbga 484 com 32.8k lfecp33e-4fn484c 360 -4 lead-free fpbga 484 com 32.8k lfecp33e-5fn484c 360 -5 lead-free fpbga 484 com 32.8k latticeec industrial part number i/os grade package pins/balls temp. luts lfec1e-3qn208i 112 -3 lead-free pqfp 208 ind 1.5k lfec1e-4qn208i 112 -4 lead-free pqfp 208 ind 1.5k lfec1e-3tn144i 97 -3 lead-free tqfp 144 ind 1.5k lfec1e-4tn144i 97 -4 lead-free tqfp 144 ind 1.5k lfec1e-3tn100i 67 -3 lead-free tqfp 100 ind 1.5k lfec1e-4tn100i 67 -4 lead-free tqfp 100 ind 1.5k part number i/os grade package pins/balls temp. luts lfec3e-3fn256i 160 -3 lead-free fpbga 256 ind 3.1k lfec3e-4fn256i 160 -4 lead-free fpbga 256 ind 3.1k lfec3e-3qn208i 145 -3 lead-free pqfp 208 ind 3.1k lfec3e-4qn208i 145 -4 lead-free pqfp 208 ind 3.1k lfec3e-3tn144i 97 -3 lead-free tqfp 144 ind 3.1k lfec3e-4tn144i 97 -4 lead-free tqfp 144 ind 3.1k lfec3e-3tn100i 67 -3 lead-free tqfp 100 ind 3.1k lfec3e-4tn100i 67 -4 lead-free tqfp 100 ind 3.1k part number i/os grade package pins/balls temp. luts lfec6e-3fn484i 224 -3 lead-free fpbga 484 ind 6.1k lfec6e-4fn484i 224 -4 lead-free fpbga 484 ind 6.1k lfec6e-3fn256i 195 -3 lead-free fpbga 256 ind 6.1k lfec6e-4fn256i 195 -4 lead-free fpbga 256 ind 6.1k lfec6e-3qn208i 147 -3 lead-free pqfp 208 ind 6.1k lfec6e-4qn208i 147 -4 lead-free pqfp 208 ind 6.1k lfec6e-3tn144i 97 -3 lead-free tqfp 144 ind 6.1k lfec6e-4tn144i 97 -4 lead-free tqfp 144 ind 6.1k part number i/os grade package pins/balls temp. luts lfec10e-3fn484i 288 -3 lead-free fpbga 484 ind 10.2k lfec10e-4fn484i 288 -4 lead-free fpbga 484 ind 10.2k lfec10e-3fn256i 195 -3 lead-free fpbga 256 ind 10.2k lfec10e-4fn256i 195 -4 lead-free fpbga 256 ind 10.2k lfec10e-3qn208i 147 -3 lead-free pqfp 208 ind 10.2k lfec10e-4qn208i 147 -4 lead-free pqfp 208 ind 10.2k latticeecp commercial (continued) part number i/os grade package pins/balls temp. luts
5-12 ordering information lattice semiconductor latticeecp/ ec family data sheet lfec15e-3fn484i 352 -3 lead-free fpbga 484 ind 15.3k lfec15e-4fn484i 352 -4 lead-free fpbga 484 ind 15.3k lfec15e-3fn256i 195 -3 lead-free fpbga 256 ind 15.3k lfec15e-4fn256i 195 -4 lead-free fpbga 256 ind 15.3k part number i/os grade package pins/balls temp. luts lfec20e-3fn672i 400 -3 lead-free fpbga 672 ind 19.7k lfec20e-4fn672i 400 -4 lead-free fpbga 672 ind 19.7k lfec20e-3fn484i 400 -3 lead-free fpbga 484 ind 19.7k lfec20e-4fn484i 400 -4 lead-free fpbga 484 ind 19.7k part number i/os grade package pins/balls temp. luts lfec33e-3fn672i 496 -3 lead-free fpbga 672 ind 32.8k lfec33e-4fn672i 496 -4 lead-free fpbga 672 ind 32.8k lfec33e-3fn484i 360 -3 lead-free fpbga 484 ind 32.8k lfec33e-4fn484i 360 -4 lead-free fpbga 484 ind 32.8k latticeecp industrial part number i/os grade package pins/balls temp. luts lfecp6e-3fn484i 224 -3 lead-free fpbga 484 ind 6.1k lfecp6e-4fn484i 224 -4 lead-free fpbga 484 ind 6.1k lfecp6e-3fn256i 195 -3 lead-free fpbga 256 ind 6.1k lfecp6e-4fn256i 195 -4 lead-free fpbga 256 ind 6.1k lfecp6e-3qn208i 147 -3 lead-free pqfp 208 ind 6.1k lfecp6e-4qn208i 147 -4 lead-free pqfp 208 ind 6.1k lfecp6e-3tn144i 97 -3 lead-free tqfp 144 ind 6.1k lfecp6e-4tn144i 97 -4 lead-free tqfp 144 ind 6.1k part number i/os grade package pins/balls temp. luts lfecp10e-3fn484i 288 -3 lead-free fpbga 484 ind 10.2k lfecp10e-4fn484i 288 -4 lead-free fpbga 484 ind 10.2k lfecp10e-3fn256i 195 -3 lead-free fpbga 256 ind 10.2k lfecp10e-4fn256i 195 -4 lead-free fpbga 256 ind 10.2k lfecp10e-3qn208i 147 -3 lead-free pqfp 208 ind 10.2k lfecp10e-4qn208i 147 -4 lead-free pqfp 208 ind 10.2k part number i/os grade package pins/balls temp. luts lfecp15e-3fn484i 352 -3 lead-free fpbga 484 ind 15.3k lfecp15e-4fn484i 352 -4 lead-free fpbga 484 ind 15.3k lfecp15e-3fn256i 195 -3 lead-free fpbga 256 ind 15.3k lfecp15e-4fn256i 195 -4 lead-free fpbga 256 ind 15.3k latticeec industrial (continued) part number i/os grade package pins/balls temp. luts
5-13 ordering information lattice semiconductor latticeecp/ ec family data sheet lfecp20e-3fn672i 400 -3 lead-free fpbga 672 ind 19.7k lfecp20e-4fn672i 400 -4 lead-free fpbga 672 ind 19.7k lfecp20e-3fn484i 400 -3 lead-free fpbga 484 ind 19.7k lfecp20e-4fn484i 400 -4 lead-free fpbga 484 ind 19.7k part number i/os grade package pins/balls temp. luts lfecp33e-3fn672i 496 -3 lead-free fpbga 672 ind 32.8k lfecp33e-4fn672i 496 -4 lead-free fpbga 672 ind 32.8k lfecp33e-3fn484i 360 -3 lead-free fpbga 484 ind 32.8k lfecp33e-4fn484i 360 -4 lead-free fpbga 484 ind 32.8k latticeecp industrial (continued) part number i/os grade package pins/balls temp. luts
november 2007 data sheet ?2007 lattice semiconductor corp. all lattice trademarks, registered trademarks, patents, and disclaimers are as listed at www .latticesemi.com/legal. all other brand or product names are trademarks or registered trademarks of their respective holders. the specifications and information herein are subject to change without notice. www.latticesemi.com 6-1 further info_01.3 for further information a variety of technical notes for the latticeecp/ec family are available on the lattice web site at www.latticesemi.com . ?atticeecp/ec sysio usage guide (tn1056) ?atticeecp/ec sysclock pll design and usage guide (tn1049) ?emory usage guide for latticeecp/ec devices (tn1051) ?atticeecp/ec ddr usage guide (tn1050) ?ower estimation and management for latticeecp/ec and latticexp devices (tn1052) ?atticeecp-dsp sysdsp usage guide (tn1057) ?atticeecp/ec sysconfig usage guide (tn1053) ?eee 1149.1 boundary scan te stability in lattice devices for further information about interface standards refer to the following web sites: jedec standards (lvttl , lvcmos, sstl, hstl): www.jedec.org ?ci: ww.pcisig.com latticeecp/ec family data sheet supplemental information
february 2008 data sheet ds1000 ?2008 lattice semiconductor corp. all lattice trademarks, registered trademarks, patents, and disclaimers are as listed at www .latticesemi.com/legal. all other brand or product names are trademarks or registered trademarks of their respective holders. the specifications and information herein are subject to change without notice. www.latticesemi.com 7-1 revision history date version section change summary june 2004 01.0 initial release. august 2004 01.1 introduction added new device lfecp/lfec33 in table 1-1. architecture added new device lfecp/lfec33 in tables 2-9, 2-10 and 2-11. dc & switching characteristics added new device lfecp/lfec33 on supply current (standby) tables. added new device lfecp/lfec33 on initialization supply current tables. ordering information added 33k logic capacity device in part number description section. added ec33, ecp33 device: industrial and commercial to part number table. corrected i/o counts in the part number tables for 100/144 tqfp and 208 pqfp packages to match table 1-1 on page 1. november 2004 01.3 introduction changed ddr333 (166mhz) to ddr400 (200mhz) added rsds offering to the features list: flexible i/o buffer architecture added information about secondary clock sources added information about dcs added a section on ?ecommended power-up sequence updated figure 2-24 dqs routing added dsp block performance numbers to table 2-11 added another row for rsds in table 2-13 and table 2-14 dc & switching characteristics updated new timing numbers added numbers to derating table added dc conditions to rsds table changed lvds max. v ccio to 2.625 added a row for rsds in ?perating condition?table updated standby and initialization current table added figure 3-12: sysconfig spi port sequence added ddr timing table and ddr timings figure 3-6 pinout information added lfecp/ec6 to pin information added lfecp/ec6 to power supply and nc connections added lfecp/ec6 144 tqfp logic signal connections added lfecp/ec6 208 pqfp logic signal connections added lfecp/ec6 256 fpbga logic signal connections added lfecp/ec6 484 fpbga logic signal connections ordering information added 33k logic capacity device in part number description section. added part number table for commercial ec33. added part number table for commercial ecp33. added part number table for industrial ec33. added part number table for industrial ecp33. latticeecp/ec family data sheet revision history
7-2 revision history lattice semiconductor latticeecp/ ec family data sheet december 2004 01.4 architecture updated hot socketing recommended power up sequence section. pinout information added lfec1, lfec3, lf ecp/ec10, lfecp/ec15 to pin information added lfec1, lfec3, lfecp/ec10, lfecp/ec15 to power supply and nc connections added lfec1 and lfec3 100 tqfp pinout added lfec1 and lfec3 144 tqfp pinout added lfec1, lfec3 and lfecp/ec10 208 pqfp pinout added lfec3, lfecp/ec10 and lfecp/ec15 256 fpbga pinout added lfecp/ec10 and lfecp/ec15 484 fpbga pinout ordering information added lead-free package designators added lead-free ordering part numbers supplemental information updated list of technical notes. april 2005 01.5 architecture ebr memory support section has been updated with clarification. updated sysio buffer pair section. dc & switching characteristics hot socketing specification has been updated. dc electrical characteristics table (i il , i ih ) has been updated. supply current (standby) table has been updated. initialization supply current table has been updated. external switching characteristics section has been updated. removed t rstw spec. from pll parameter table. t rst specifications have been updated. sysconfig port timing specifications (t bscl, t iodiss, t prgmrj ) have been updated. pinout information added lfecp/ec33 pinout information pin information summary table has been updated. power supply and nc connection table has been updated. 484-fpbga logic connection has been updated (ball # j6, j17, p6 and p17 for ecp/ec33 are now called vccpll). 672-fpbga logic connection has been updated (ball # k19, l8, u19, u8 for ecp/ec33 are now called vccpll). may 2005 01.6 introduction ecp/ec33 ebr sram bits and blocks have been updated to 498k and 54 respectively. architecture table 2-10 has been updated (ecp/ec33 ebr sram bits and blocks have been updated to 498k and 54 respectively.) recommended power up sequence section has been removed. dc & switching characteristics supply current (standby) table has been updated. initialization supply current table has been updated. vos test condition has been updated to (vop+vom)/2. register-to-register performance table has been updated (rev. g 0.27). external switching characteristics have been updated (rev. g 0.27). internal timing parameters have been updated (rev. g 0.27). timing adders have been updated (rev. g 0.27). sysconfig port timing specifications have been updated. pinout information pin information summary table has been updated. power supply and nc connection table has been updated. ordering information opn list has been updated. date version section change summary
7-3 revision history lattice semiconductor latticeecp/ ec family data sheet september 2005 02.0 architectu re sysio section has been updated. dc & switching characteristics recommended operating condit ions has been updated with v ccpll . dc electrical characteristics table has been updated removed 5v tolerant input buffer section. register-to-register performance table has been updated (rev. g 0.28). latticeecp/ec external switching characteristics table has been updated (rev. g 0.28). latticeecp/ec internal switching characteristics table has been updated (rev. g 0.28). latticeecp/ec family timing adders have been updated (rev. g 0.28). sysclock pll timing table has been updated (rev. g 0.28) latticeecp/ec sysconfig port timing specification table has been updated (rev. g 0.28). master clock table has been updated (rev. g 0.28). jtag port timing specification table has been updated (rev. g 0.28). pinout information signal description table has been updated with v ccpll . november 2005 02.1 dc & switching characteristics pin-to-pin performance table has been updated (g 0.30) - 4:1mux, 8:1mux, 16:1mux, 32:1mux register-to-register performanc e (g 0.30) - no timing number changes. external switching characteristics (g 0.30) - no timing number changes. internal switching characteristics (g 0.30) -t sup_dsp, t hp_dsp , t suo_dsp, t ho_dsp, t coi_dsp , t cod_dsp numbers have been updated. family timing adders (g 0.30) - no timing number changes. sysclock pll timing (g 0.30) - no timing number changes. sysconfig port timing specificati ons (g 0.30) - no timing number changes. master clock (g 0.30) - no timing number changes. jtag port timing specification (g 0.30) - no timing number changes. ordering information added 208-pqfp lead-free part numbers. march 2006 02.2 dc & switching characteristics added footnote 3. to v ccaux in the recommended operating condi- tions table. january 2007 02.3 architecture ebr asynchronous reset section added. february 2007 02.4 architecture updated ebr asynchronous reset section. updated maximum number of elements in a block table - mac value for x9 changed to 2. may 2007 02.5 architecture updated text in ripple mode section. november 2007 02.6 dc & switching characteristics added jtag port waveforms diagram. updated t rst timing information in the sysclock pll timing table. pinout information added therma l management text section. supplemental information updated title list. february 2008 02.7 dc & switching characteristics read/write mode (normal) and read/write mode with input and output registers waveforms in the ebr memory timing diagrams section have been updated. date version section change summary
section ii. latticeecp/ec family technical notes
march 2006 technical note tn1056 ?2006 lattice semiconductor corp. all lattice trademarks, registered trademarks, patents, and disclaimers are as listed at www .latticesemi.com/legal. all other brand or product names are trademarks or registered trademarks of their respective holders. the specifications and information herein are subject to change without notice. www.latticesemi.com 8-1 tn1056 _03.3 introduction the latticeecp, latticeec and latt icexp sysio buffers give the desi gner the ability to easily interface with other devices using advanced system i/o standards. this technical note describes the sysio standards avail- able and how they can be implemented using lattices design software. sysio buffer overview the latticeecp/ec and latticexp sysio interfaces contain multiple programmable i/o cells (pic) blocks. in the case of the latticeec and latticeecp devices, each pic contains two programmable i/os (pio), pioa and piob, connected to their respective sysio buffers. in the latticexp device, each pic also contains two pios, pioa and piob, but every fourth pic will have only pioa. two adjacent pios can be joined to provide a differential i/o pair (labeled as ? and c?. each programmable i/o (pio) includes a sysio buffer and i/o logic (iologic). the latticeecp/ec and lattic- exp sysio buffers support a variety of single-ended and differential signaling standards. the sysio buffer also sup- ports the dqs strobe signal that is required for interfacing with the ddr me mory. one of every 16 pios in the latticeecp/ec and one of every 14 pios in the case of the la tticexp contains a delay element to facilitate the generation of dqs signals. the dqs signal from the bus is used to strobe the ddr data from the memory into input register blocks. for more information on the architecture of the sysio buffer, please refer to the device data sheets. the iologic includes input, output and tristate registers that implement both single data rate (sdr) and double data rate (ddr) applications along with the necessary clock and data selection logic. programmable delay lines and dedicated logic within the iologic are used to provide the required shift to incoming clock and data signals and the delay required by dqs inpu ts in ddr memory. the ddr implemen tation in the iologic and the ddr memory interface support are discussed in more details in lattice technical note number tn1050, latticeecp/ec ddr usage guide. supported sysio standards the latticeecp/ec and latticexp sysio buffer supports both single-ended and differential standards. single- ended standards can be further subdivided into lvcmos, lvttl, pci and other standards. the buffers support the lvttl, lvcmos 1.2, 1.5, 1.8, 2.5 and 3.3v standards. in the lvcmos and lvttl modes, the buffer has indi- vidually configurable options for drive strength, bus maintenance (weak pull-up, weak pull-down, or a bus-keeper latch). other single-ended standards supported include sstl and hstl. differential standards supported include lv d s, r s d s, b lv d s, lv p e c l , d i f fe r e n t i a l s s t l a n d d i f fe r ential hstl. table 8-1 lists the sysio standards sup- ported in the lattice ec/ecp and latticexp devices. latticeecp/ec and latticexp sysio usage guide
latticeecp/ec and latticexp lattice semiconductor sysio usage guide 8-2 table 8-1. suppor ted sysio standards sysio banking scheme latticeecp/ec and latticexp devices have eight programmable sysio banks, two per side. each sysio bank has a v ccio supply voltage and two reference voltages, v ref1 and v ref2. on the top and bottom banks, the sysio buf- fer pair consists of two single-ended output drivers and two sets of single-ended input buffers (both ratioed and ref- erenced). the left and right side sysio buffer pair along with the two single- ended output and input drivers will also have a differential driver. the referenced input buffer can also be configured as a differential input. the two pads in the pair are described as true and comp, where the true pad is associated with the positive side of the differen- tial input buffer and the comp (complementary) pad is asso ciated with the negative side of the differential input buf- fer. figure 8-1 shows the eight banks and their associated supplies. v ccio v ref (v) standard min. typ. max. min. typ. max. lv c m o s 3 . 3 3 . 1 3 5 3 . 3 3 . 4 6 5 lv c m o s 2 . 5 2 . 3 7 5 2 . 5 2 . 6 2 5 lv c m o s 1 . 8 1 . 7 1 1 . 8 1 . 8 9 lv c m o s 1 . 5 1 . 4 2 5 1 . 5 1 . 5 7 5 lv c m o s 1 . 2 1 . 1 4 1 . 2 1 . 2 6 lv t t l 3 . 1 3 5 3 . 3 3 . 4 6 5 pci 3.135 3.3 3.465 sstl18 class i 1.71 2.5 1.89 0.833 0.9 0.969 sstl2 class i, ii 2.375 2.5 2.625 1.15 1.25 1.35 sstl3 class i, ii 3.135 3.3 3.465 1.3 1.5 1.7 hstl15 class i 1.425 1.5 1.575 0.68 0.75 0.9 hstl15 class iii 1.425 1.5 1.575 0.9 hstl 18 class i, ii 1.71 1.8 1.89 0.9 hstl 18 class iii 1.71 1.8 1.89 1.08 lv d s 2 . 3 7 5 2 . 5 2 . 6 2 5 lv p e c l 1 3.135 3.3 3.465 blvds 1 2.375 2.5 2.625 rsds 1 2.375 2.5 2.625 1. inputs on chip. outputs are implemented wi th the addition of external resistors.
latticeecp/ec and latticexp lattice semiconductor sysio usage guide 8-3 figure 8-1. sysio banking v ccio (1.2v/1.5v/1.8v/2.5v/3.3v) each bank has a separate v ccio supply that powers the single-ended output drivers and the ratioed input buffers such as lvttl, lvcmos, and pci. lvttl, lvcmos3.3, lvcmos2.5 and lvcmos1.2 also have fixed threshold options allowing them to be placed in any bank. the vccio voltage applied to the bank determines the ratioed input standards that can be supported in that bank. it is also used to power the differential output drivers. v ccaux (3.3v) in addition to the bank v ccio supplies, devices have a v cc core logic power supply, and a v ccaux auxiliary supply that powers the differential and referenced input buffers. v ccaux is required because v cc does not have enough headroom to satisfy the common-mode range requirements of these drivers and input buffers. v ccj (1.2v/1.5v/1.8v/2.5v/3.3v) the jtag pins have a separate v ccj power supply that is independent of the bank v ccio supplies. v ccj deter- mines the electrical characteristics of the lvcmos jtag pins, both the output high level and the input threshold. input reference voltage (v ref1, v ref2 ) each bank can support up to two separate v ref input voltages, v ref1 and v ref2 , that are used to set the thresh- old for the referenced input buffers. the location of these v ref pins is pre-determined wit hin the bank. these pins can be used as regular i/os if the bank does not require a v ref voltage. v ref1 for ddr memory interface when interfacing to ddr memory, the v ref1 input must be used as the reference voltage for the dqs and dq input from the memory. a voltage divider between v ref1 and gnd is used to generate an on-chip reference volt- v ref1(2) gnd bank 2 v ccio2 v ref2(2) v ref1(3) gnd bank 3 v ccio3 v ref2(3) v ref1(7) gnd bank 7 v ccio7 v ref2(7) v ref1(6) gnd bank 6 v ccio6 v ref2(6) v ref1( 5) gnd bank 5 v ccio5 v ref2( 5) v ref1( 4) gnd bank 4 v ccio4 v ref2( 4) v ref1( 0) gnd bank 0 v ccio 0 v ref2( 0) v ref1(1) gnd bank 1 v ccio 1 v ref2(1)
latticeecp/ec and latticexp lattice semiconductor sysio usage guide 8-4 age that is used by the dqs transition detector circuit. this voltage divider is only present on v ref1 it is not avail- able on v ref2. for more information on the dqs transition detect logic and its implementation please refer to lattice technical note number tn1050, latticeecp/ec ddr usage guide. mixed voltage support in a bank the latticeecp/ec and latticexp sysio buffer is connected to three parallel ratioed input buffers. these three par- allel buffers are connected to v ccio, v ccaux and to v cc giving support for thresholds that track with v ccio as well as fixed thresholds for 3.3v (v ccaux ) and 1.2v (v cc ) inputs. this allows the input threshold for ratioed buffers to be assigned on a pin-by-pin basis, rather than tracking it with v ccio. this option is available for all 1.2v, 2.5v and 3.3v ratioed inputs and is independent of the bank v ccio voltage. for example, if the bank v ccio is 1.8v, it is possible to have 1.2v and 3.3v ratioed input buffers with fixed thresholds, as well as 2.5v ratioed inputs with tracking thresh- olds. prior to device configuration, the ratioed input thresholds always track the bank v ccio, this option only takes effect after configuration. output standards within a bank are always set by v ccio. table 8-2 shows the sysio standards that the user can mix in the same bank. table 8-2. mixed voltage suppor t v ccio input sysio standards output sysio standards 1.2v 1.5v 1.8v 2.5v 3.3v 1.2v 1.5v 1.8v 2.5v 3.3v 1.2v yes yes yes yes 1.5v yes yes yes yes yes 1.8v yes yes yes yes yes 2.5v yes yes yes yes 3.3v yes yes yes yes
latticeecp/ec and latticexp lattice semiconductor sysio usage guide 8-5 sysio standards supported in each bank table 8-3. i/o standards suppor ted by various banks lv c m o s b u f f e r c o n f i g u r a t i o n s all lvcmos buffers have programmable pull, programmable drive and programmable slew configurations that can be set in the software. programmable pull-u p/pull-down/buskeeper when configured as lvcmos or lvttl, each sysio buffer has a weak pull-up, a weak pull-down resistor and a weak buskeeper (bus hold latch) available. each i/o can independently be configured to have one of these features or none of them. programmable drive each lvcmos or lvttl output buffer pin has a programmable drive strength option. this option can be set for each i/o independently. the drive strength setting available are 2ma, 4ma, 6ma, 8ma, 12ma, 16ma and 20ma. actual options available vary by the i/o voltage. the user must consider the maximum allowable current per bank and the package thermal limit current when selecting the drive strength. description top side banks 0-1 right side banks 2-3 bottom side banks 4-5 left side banks 6-7 types of i/o buffers single-ended single-ended and differ- ential single-ended single-ended and differ- ential output standards supported lv t t l lv c m o s 3 3 lv c m o s 2 5 lv c m o s 1 8 lv c m o s 1 5 lv c m o s 1 2 sstl18 class i sstl25 class i, ii sstl33 class i, ii hstl15 class i, iii hstl18_i, ii, iii sstl18d class i, sstl25d class i, ii sstl33d class i, ii hstl15d class i, iii, hstl18d class i, iii pci33 lv d s 2 5 e 1 lv p e c l 1 blvds 1 rsds 1 lv t t l lv c m o s 3 3 lv c m o s 2 5 lv c m o s 1 8 lv c m o s 1 5 lv c m o s 1 2 sstl18 class i sstl25 class i, ii sstl33 class i, ii hstl15 class i, iii hstl18 class i, ii, iii sstl18d class i, sstl25d class i, ii sstl33d class i, ii hstl15d class i, iii hstl18d class i, iii pci33 lv d s lv d s 2 5 e 1 lv p e c l 1 blvds 1 rsds 1 lv t t l lv c m o s 3 3 lv c m o s 2 5 lv c m o s 1 8 lv c m o s 1 5 lv c m o s 1 2 sstl18 class i sstl2 class i, ii sstl3 class i, ii hstl15 class i, iii hstl18 class i, ii, iii sstl18d class i, sstl25d class i, ii, sstl33d class i, ii hstl15d class i, iii hstl18d class i, iii pci33 lv d s 2 5 e 1 lv p e c l 1 blvds 1 rsds 1 lv t t l lv c m o s 3 3 lv c m o s 2 5 lv c m o s 1 8 lv c m o s 1 5 lv c m o s 1 2 sstl18 class i sstl2 class i, ii sstl3 class i, ii hstl15 class i, iii hstl18 class i, ii, iii sstl18d class i, sstl25d class i, ii, sstl33d_i, ii hstl15d class i, iii hstl18d class i, iii pci33 lv d s lv d s 2 5 e 1 lv p e c l 1 blvds 1 rsds 1 inputs all single-ended, differential all single-ended, differential all single-ended, differential all single-ended, differential clock inputs all single-ended, differential all single-ended, differential all single-ended, differential all single-ended, differential pci support pci33 with clamp pci33 no clamp pci33 with clamp pci no clamp lv d s o u t p u t b u f fe r s lv d s ( 3 . 5 m a ) buffers lvds (3.5ma) buffers 1. these differential standards are implemented by using comp lementary lvcmos driver with external resistor pack.
latticeecp/ec and latticexp lattice semiconductor sysio usage guide 8-6 the programmable drive feature also allows the user to match to the impedance of the transmission line. ta bl e 8 - 4 s h o w s t h e d r i ve c u r r e n t s e t t i n g r e q u i r e d t o m a t c h 5 0 ? t r a n s m i s s i o n l i n e w i t h 5 0 ? a n d 2 0 0 ? t e r m i n a - tions. table 8-4. impedance matching using programmable drive strength the actual impedance matching may vary on the transmission line design and the load. to find the best matching, it is recommended to drive the transmission line with different combinations of i/o standards and drive strengths that best match the line impedance. lattice provides ibis buffer models for the users to further analyze the imped- ance matching. the figure below shows how this impedance matching is done for a 50 ? transmission line with 200 ? termination using lvcmos18 i/o buffers programmed to drive 16ma, 12ma, 8ma and 4ma. from this experiment it is empiri- cal that the best matching is achieved with the 8ma drive setting. figure 8-2. impedance matching for a 50 ? transmission line with 200 ? termination 50 ? transmission line termination ( ? ) i/o standard drive strength (ma) 200 lv c m o s 1 8 8 lv c m o s 3 3 1 2 50 lv c m o s 1 8 1 6 lv c m o s 3 3 2 0 lvcmos18 16ma lvcmos18 12ma
latticeecp/ec and latticexp lattice semiconductor sysio usage guide 8-7 figure 7-2. impedance matching for a 50 ? tr ansmission line with 200 ? termination (cont.) programmable slew rate each lvcmos or lvttl output buffer pin also has a programmable output slew rate control that can be configured for either low noise or high-speed performance. each i/o pi n has an individual slew rate control. this allows slew rate control to be specified on pin-by-pin basis. this slew rate contro l affects both the rising edges and the falling edges. open drain control all lvcmos and lvttl output buffers can be configured to function as open drain outputs. the user can imple- ment an open drain output by turning on the opendrain attribute in the software. the software implements open drain in the latticeecp/ec and latticexp devices by connecting the data and tristate input of th e output buffer. software will implem ent open drain using th is method for simple output buffers. if the user wants to assign open drain functionality to a bidi rectional i/o, a similar implem entation is required in the hdl design. this can be accomplished by combining the equations for the output enable with the output data. the function of an open drain output is to drive a high z when the data to the output buffer is driven high and drive a low when the data to the output buffer is driven low. differential sstl and hstl support the single-ended driver associated wit h the complementary ??pad can optionally be driven by the complement of the data that drives the single-ended driver associated with the true pad. this allows a pair of single-ended drivers to be used to drive complementary outputs with the lowest possible skew between the signals. this is used for driv- ing complementary sstl and hstl signals (as required by the differential sstl and hstl clock inputs on syn- chronous dram and synchronous sram de vices respectively). this capability is also used in conjunction with off- chip resistors to emulate l vpecl and blvds output drivers. pci support with programmable pciclamp each sysio buffer can be configured to support pci33. the buffers on the top and bottom of the device have an optional pci clamp diode that may optionally be specified in the isplever design tool. the programmable pciclamp can be turned on or off. this option is available on each i/o independently on the top and bottom banks. lvcmos18 8ma lvcmos18 4ma
latticeecp/ec and latticexp lattice semiconductor sysio usage guide 8-8 5v interface with pci clamp diode all the i/os on the top and bottom sides of the device (ban ks 0, 1, 4, and 5) have a clamp diode that is used to clamp the voltage at the input to v ccio . this is especially used for pci i/ o standards. this clamp diode can be used along with an external resistor to make an input 5v tolerant. figure 8-3. 5v tolerant input buffer the value of this external resistor will depend on the pci clamp diode characteristics. you can find the voltage vs. current data across this diode in the device ibis model. in order to interface to 5v input, it is recommended to set the v ccio between 2.5v to 3.3v. below is an example for calculating the value of this external resistor when v ccio is 2.75v. ?aximum voltage at input pin, v inmax = 3.75v (see device data sheet for more details) ?ank v ccio = 2.75v ?aximum voltage drop across clamp diode, v d = v inmax - v ccio = 3.75 - 2.75 =1v ?he current across the clamp diode at v d can be found in the power clamp data of the ibis file. below is the power clamp portion of the ibis file for a lvcmos3.3 input model with pci clamp turned on. when v d is 1v, the clamp diode current is i d = 27.4ma. table 8-5. power clamp data from ibis model ?ssume the maximum output voltage of the driving device is v ext = 5.25v. the value of the external resistor can then be calculated as follows: voltage i (max.) units -1.40 72.5 ma -1.30 61.2 ma -1.20 49.9 ma -1.10 38.6 ma -1.00 27.4 ma -0.90 16.9 ma -0.80 9.52 ma -0.70 5.35 ma -0.60 2.31 ma -0.50 550.8 a -0.40 58.0 a -0.30 3.61 a -0.20 0.07917 a -0.10 0.0009129 a 0.00 0.0001432 a external resistor pci clamp diode 5v input v ccio
latticeecp/ec and latticexp lattice semiconductor sysio usage guide 8-9 r ext = (v ext - v inmax )/i d = (5.25v - 3.75v)/27.4 = 54.8 ohm if the v ccio of the bank is increased, it will al so increase the value of the external resistor required. changing the bank v ccio will also change the value of the input threshold voltage. programmable input delay each input can optionally be delayed before it is passed to the core logic or input registers. the primary use for the input delay is to achieve zero hold time for the input registers when using a direct drive primary clock. to arrive at zero hold time, the input delay will dela y the data by at least as much as th e primary clock injection delay. this option can be turned on or off for each i/o independently in the software using the fixeddelay attribute. this attribute is described in more detail in the software sysio attributes section. appendix a shows how this feature can be enabled in the software using hdl attributes. software sysio attributes sysio attributes can be specified in the hdl, using the preference editor gui or in the ascii preference file (.prf) file directly. appendices a, b and c list examples of how these can be assigned using each of the methods men- tioned above. this section describes in detail each of these attributes. io_type this is used to set the sysio standard for an i/o. the v ccio required to set these i/o standards are embedded in the attribute names itself. there is no separate attribute to set the v ccio requirements. table 8-6 lists the available i/o types.
latticeecp/ec and latticexp lattice semiconductor sysio usage guide 8-10 table 8-6. i/o_type attribute values opendrain lvcmos and lvttl i/o standards can be set to open drain configuration by using the opendrain attribute. values: on, off default: off drive the drive strength attribute is available for lvttl and lvcmos output standards. these can be set or each i/o pin individually. sysio sign aling standard io_type default (for latticeecp/ec) lvcmos12 default (for latticexp) lvcmos25 lv d s 2 . 5 v lv d s 2 5 rsds rsds emulated lvds 2.5v lvds25e 1 bus lvds 2.5v blvds25 1 lv p e c l 3 . 3 v lv p e c l 3 3 1 hstl18 class i, ii and iii hstl18_i, hstl18_ii, hstl18_iii differential hstl 18 class i, ii and iii hstl18d_i hstl18d_ii hstl18d_iii hstl 15 class i and iii hstl15_i hstl15_iii differential hstl 15 class i and iii hstl15d_i hstl15d_iii sstl 33 class i and ii sstl33_i, sstl33_ii differential sstl 33 class i and ii sstl33d_i sstl3d_ii sstl 25 class i and ii sstl25_i sstl25_ii differential sstl 25 class i and ii sstl25d_i sstl25d_ii sstl 18 class i sstl18_i differential sstl 18 class i sstl18d_i lv t t l lv t t l 3 3 3.3v lvcmos lvcmos33 2.5v lvcmos lvcmos25 1.8v lvcmos lvcmos18 1.5v lvcmos lvcmos15 1.2v lvcmos lvcmos12 3.3v pci pci33 1. these differential standards are im plemented by using complementary  lv c m o s d r i ve r w i t h ex t e r n a l r e s i s t o r p a ck .
latticeecp/ec and latticexp lattice semiconductor sysio usage guide 8-11 values: na, 2, 4, 8, 12, 16, 20 latticeecp/ec default: 6 latticexp default: 8 the programmable drive availabl e on a pad will depend on the v ccio. table 8-7 shows the drive strength available for different v ccio. table 8-7. programmable drive strength values at various v ccio voltages pullmode the pullmode attribute is available for all the lvtll and lvcmos inputs and outputs. this attribute can be enabled for each i/o independently. values: up, down, none, keeper default: up pciclamp pci33 inputs and outputs on the top and bottom of the device have an optional pci clamp that is enabled via the pciclamp attribute. the pciclamp is also available for all lvcmos33 and lvttl inputs and outputs. values: on, off default: off slewrate the slewrate attribute is available for all lvttl and lvcmos output drivers. each i/o pin has an individual slew rate control. this allows th e designer to specify the slew rate control on a pin-by-pin basis. values: fast, slow default: fast fixeddelay the fixeddelay attribute is available to each input pin. when enabled, this attribute is used to achieve zero hold time for the input registers when using global clock. values: true, false default: false din/dout this attribute can be used when i/o registers need to be a ssigned. using din will assert an input register and using the dout attribute will assert an ou tput register in the design. by defaul t the software will try to assign the i/o registers if applicable. the user can turn this off by using the synthesis attribute or using the preference editor of the software. these attributes can only be applied on registers. drive v ccio 1.2 v 1.5 v 1.8 v 2.5 v 3.3 v 2x 4xxxx 6x 8xxxx 12 x x x 16 x x x 20 x x
latticeecp/ec and latticexp lattice semiconductor sysio usage guide 8-12 loc this attribute can be used to make pin assignments to the i/o ports in the design. this attribute is only used when the pin assignments are made in hdl source. pins assignme nts can be made directly using the gui in the prefer- ence editor of the software. the appendices explain this in more detail. design considerations and usage this section discusses some of design rules and considerations that need to be taken into account when designing with the latticeecp/ecp and latticexp sysio buffer. banking rules ?f v ccio or v ccj for any bank is set to 3.3v, it is recommended that it be connected to the same power sup - ply as v ccaux, thus minimizing leakage. ?f v ccio or v ccj for any bank is set to 1.2v, it is recommended that it be connected to the same power sup - ply as v cc, thus minimizing leakage. ?hen implementing ddr memory interfaces, the v ref1 of the bank is used to provide reference to the interface pins and cannot be used to power any other referenced inputs. ?nly the top and bottom ban ks (banks 0, 1, 4, and 5) will support pci clamps. the left and right side (banks 2, 3, 6 and 7) do not support pci cla mp, but will support true lvds output. differential i/o rules ?ll the banks can support lvds input buffers. only the banks on the right and left side (banks 2, 3, 6 and 7) will support true differentia l output buffers. the banks on the to p and bottom will support the lvds input buffers but will not support true lvds outputs. the us er can use emulated lvds output buffers on these banks. ?ll banks support emulated differential buffers using external resistor pack and complementary lvcmos drivers. ?n latticexp devices, not all pios ha ve lvds capability. only four out of every seven i/os can provide lvds buffer capability. in latticeecp/ec de vices, there are no restrictions on the number of i/os that can support lv d s. i n b o t h c a s e s lv d s c a n o n l y b e a s s i g n e d t o the true pad. refer to the device data sheets to see the pin listing for all the lvds pairs. assigning v ref / v ref groups for referenced inputs each bank has two dedicated v ref input pins, v ref1 and v ref2. buffers can be grouped to a particular v ref rail, v ref1 or v ref2. this grouping is done by assigning a pgroup vref preference along with the locate pgroup preference. preference syntax pgroup [(vref )+] (comp )+; locate pgroup bank ; locate vref site ; example of vref groups pgroup ?ref_pg1? vref ?ef1? comp ?h(0)? comp ?h(1)? comp ?h(2)? comp ?h(3)? comp ah(4)?comp ?h(5)?comp ?h(6)?comp ah(7)? pgroup ?ref_pg2? vref ?ef2? comp ?l(0)? comp ?l(1)? comp ?l(2)? comp ?l(3)? comp al(4)?comp ?l(5)?comp ?l(6)?comp al(7)? locate vref ?ef1?site pr29c;  locate vref ?ef2?site pr48b;
latticeecp/ec and latticexp lattice semiconductor sysio usage guide 8-13 or locate pgroup ?vref_pg1?bank 2;  locate pgroup ?vref_pg2?bank 2; the second example show v ref groups, vref_pg1 assigned to v ref ref1 and vref_pg2 assigned to ref2. v ref must then be locked to either v ref1 or v ref2 using locate preference. or, t he user can simply designate to which bank v ref group should be located. the software will then assi gn these to either v ref1 or v ref2 of the bank. if the pgroup vref is not used, the software will au tomatically group all pins that need the same v ref reference voltage. this preference is most useful when there is more than one bus using the same reference voltage and the user wants to associate each of these buses to different v ref resources. differential i/o implementation the latticeecp/ec and latticexp devices support a variety of differential standards as detailed in the following section. lv d s true lvds (lvds25) drivers are available on the left and right side of the devices. lvds input support is provided on all sides of the device. all four sides support lvds using complementary lvcmos drivers with external resis- tors (lvds25e). please refer to the latticeecp/ec and latticexp data sheets for a more detailed explanation of these lvds imple- mentations. blvds all single-ended sysio buffer pairs in the latticeecp family support the bus-lvds standard using complementary lvcmos drivers with external resistors. please refer to the latticeecp/ec and latticexp data sheets to learn more about blvds implementation. rsds all single-ended sysio buffers pairs in the latticeecp family support the rsds st andard using complementary lvcmos drivers with external resistors. this mode uses lvds25e with an alternative resistor pack. please refer to the latticeecp/ec and latticexp data sheets for a detailed explanation of rsds implementation. lv p e c l all the sysio buffers will support lvpecl inputs. lvpecl outputs are supported usi ng a complementary lvcmos driver with external resistors. please refer to the latticeecp/ec and latticexp data sheets for further in formation on lvpecl implementation. differential sstl and hstl all single-ended sysio buffers pairs in the latticeecp family support differential sstl and hstl. please refer to the latticeecp/ec and latticexp data sheets for a detailed explanation of differential hstl and sstl implemen- tation. technical support assistance hotline: 1-800-lattice (north america) +1-503-268-8001 (outside north america) e-mail: techsupport@latticesemi.com
latticeecp/ec and latticexp lattice semiconductor sysio usage guide 8-14 internet: www.latticesemi.com
latticeecp/ec and latticexp lattice semiconductor sysio usage guide 8-15 appendix a. hdl attributes for synplify and precision rtl synthesis using these hdl attributes, you can assign sysio attributes directly in your source. you will need to use the attri- bute definition and syntax for the synthesis vendor you are planning to use. below are a list of all the sysio attri- butes syntax and examples for precision rtl synthesis and synplify. this section on ly lists the sysio buffer attributes for these devices. you can refer to the precis ion rtl synthesis and synplify user manuals for a complete list of synthesis attributes. these manuals are available th rough isplever software help. vhdl synplify/precision rtl synthesis this section lists syntax and examples for all the sysio at tributes in vhdl when using precision rtl synthesis or synplicity synthesis tools. syntax table 8-8. vhdl attribute syntax for synplify and precision rtl synthesis examples io_type --***attribute declaration*** at t r i b u t e i o _ t y p e : s t r i n g ; --***io_type assignment for i/o pin*** at t r i b u t e i o _ t y p e o f p o r t a : s i g n a l i s p c i 3 3 ; at t r i b u t e i o _ t y p e o f p o r t b : s i g n a l i s lv c m o s 3 3 ; at t r i b u t e i o _ t y p e o f p o r t c : s i g n a l i s lv d s 2 5 ; attribute syntax io_type attribute io_type: string; attribute io_type of pinname: signal is io_type value; opendrain attribute opendrain: string; attribute opendrain of pinname: signal is opendrain value; drive attribute drive: string; attribute drive of pinname: signal is drive value; pullmode attribute pullmode: string; attribute pullmode of pinname: signal is pullmode value; pciclamp attribute pciclamp: string; attribute pciclamp of pinname: signal is pciclamp value; slewrate attribute pullmode: string; attribute pullmode of pinname: signal is slewrate value; fixeddelay attribute fixeddelay: string; attribute fixeddelay of pinname: signal is fixeddelay value; din attribute din: string; attribute din of pinname: signal is ?? dout attribute dout: string; attribut e dout of pinname: signal is ?? loc attribute loc: string; attribute loc of pinname: signal is pin_locations;
latticeecp/ec and latticexp lattice semiconductor sysio usage guide 8-16 opendrain --***attribute declaration*** at t r i b u t e o p e n d r a i n : s t r i n g ; --***drive assignment for i/o pin*** at t r i b u t e o p e n d r a i n o f p o r t b : s i g n a l i s " o n " ; drive --***attribute declaration*** at t r i b u t e d r i v e : s t r i n g ; --***drive assignment for i/o pin*** at t r i b u t e d r i v e o f p o r t b : s i g n a l i s 2 0 ; pullmode --***attribute declaration*** at t r i b u t e p u l l m o d e : s t r i n g ; --***pullmode assignment for i/o pin*** at t r i b u t e p u l l m o d e o f p o r t a : s i g n a l i s " d ow n " ; at t r i b u t e p u l l m o d e o f p o r t b : s i g n a l i s " u p " ; pciclamp --***attribute declaration*** at t r i b u t e p c i c l a m p : s t r i n g ; --***pullmode assignment for i/o pin*** at t r i b u t e p c i c l a m p o f p o r t a : s i g n a l i s " o n " ; slewrate --***attribute declaration*** at t r i b u t e s l e w r at e : s t r i n g ; --*** slewrate assignment for i/o pin*** at t r i b u t e s l e w r at e o f p o r t b : s i g n a l i s fa s t ; fixeddelay --***attribute declaration*** at t r i b u t e f i x e d d e l ay: s t r i n g ; --*** slewrate assignment for i/o pin*** at t r i b u t e f i x e d d e l ay o f p o r t b : s i g n a l i s t ru e ;
latticeecp/ec and latticexp lattice semiconductor sysio usage guide 8-17 din/dout --***attribute declaration*** at t r i b u t e d i n : s t r i n g ; at t r i b u t e d o u t : s t r i n g ; --*** din/dout assignment for i/o pin*** attribute din of input_vector: signal is ; at t r i b u t e d o u t o f o u t p u t _ ve c t o r : s i g n a l i s ; loc --***attribute declaration*** at t r i b u t e l o c : s t r i n g ; --*** loc assignment for i/o pin*** attribute loc of input_vector: signal is e3,b3,c3 ;
latticeecp/ec and latticexp lattice semiconductor sysio usage guide 8-18 verilog for synplify this section lists syntax and examples for all the sysio attributes in verilog using the synplify synthesis tool. syntax table 8-9. verilog synplify attribute syntax examples //io_type, pullmode, slewrate and drive assignment output portb /*synthesis io_type="lvcmo s33" pullmode =?p?slewrate =?ast? drive =?0?/; output portc /*synthesis io_type="lvds25" */; //opendrain output porta /*synthesis opendrain =?n*/; //pciclamp output porta /*synthesis io_type="pci33" pullmode =pciclamp*/; // fixeddelay input load /* synthesis fixeddelay="true" */; // place the flip-flops near the load input input load /* synthesis din= */; // place the flip-flops near the outload output output outload /* synthesis dout=?*/; attribute syntax io_type pintype pinnam e /* synthesis io_type= ?o_type value?/; opendrain pintype pinname /* synthesis opendrain =opendrain value*/; drive pintype pinname /* synthesis drive=drive value*/; pullmode pintype pinname /* synthesis pullmode=pullmode value*/; pciclamp pintype pinname /* synthesis pciclamp = pciclamp value*/; slewrate pintype pinname /* synthes is slewrate=?lewrate value?/; fixeddelay pintype pinname /* synthesis fixeddelay=fixeddelay value*/; din pintype pinname /* synthesis din= */; dout pintype pinname /* synthesis dout= */; loc pintype pinname /* synthesis loc=pin_locations */;
latticeecp/ec and latticexp lattice semiconductor sysio usage guide 8-19 //i/o pin location input [3:0] data0 /* synthesis loc=?3,b1,f3*/; //register pin location reg data_in_ch1_buf_reg3 /* synthesis loc=?40c47 */; //vectored internal bus reg [3:0] data_in_ch1_reg /*synthesis loc =r40c47,r40c46,r40c45,r40c44 */;
latticeecp/ec and latticexp lattice semiconductor sysio usage guide 8-20 verilog for precision rtl synthesis this section lists syntax and examples for all the sysio attributes in verilog using the precision rtl synthesis syn- thesis tool. syntax table 8-10. verilog precision rtl synthesis attribute syntax example //****io_type *** //pragma attribute porta io_type pci33 //pragma attribute portb io_type lvcmos33 //pragma attribute portc io_type sstl25_ii //*** opendrain *** //pragma attribute portb opendrain on //pragma attribute portd opendrain off //*** drive *** //pragma attribute portb drive 20 //pragma attribute portd drive 8 //*** pullmode*** //pragma attribute portb pullmode up //*** pciclamp*** //pragma attribute portb pciclamp on //*** slewrate *** //pragma attribute portb slewrate fast //pragma attribute portd slewrate slow attribute syntax io_type //pragma attribute pinname io_type io_type value opendrain //pragma attribute pinname opendrain opendrain value drive //pragma attribute pinname drive drive value pullmode //pragma attribute pi nname io_type pullmode value pciclamp //pragma attribute pinname pciclamp pciclamp value slewrate //pragma attribute pi nname io_type slewrate value fixeddelay //pragma attribute pi nname io_type fixeddelay value loc //pragma attribute pinname loc pin_location
latticeecp/ec and latticexp lattice semiconductor sysio usage guide 8-21 // ***fixeddelay*** // pragma attribute load fixeddelay true //***loc*** //pragma attribute portb loc e3
latticeecp/ec and latticexp lattice semiconductor sysio usage guide 8-22 appendix b. sysio attributes usin g preference editor user interface yo u c a n a l s o a s s i g n t h e s y s i o b u f f e r attributes using the pre ma p preference editor gui available in the isplever tools. the pin attribute sheet list all the ports in your design and all the available sysio attributes as preferences. clicking on each of these cells will produce a list of all the valid i/o preference for that port. each column takes pre- cedence over the next. hence, when a particular io_type is chosen, the drive, pullmode and slewrate columns will only list the valid combinat ions for that io_type. t he user can lock the pin locations using the pin location column of the pin attribute sh eet. right-clicking on a cell will list all the available pin locations. the prefer- ence editor will also conduct a drc check to look for incorrect pin assignments. yo u c a n e n t e r t h e d i n / d o u t p r e f e r e n c e s u s i n g t h e c e l l a t t r i b u t e s s h e e t o f t h e p r e f e r e n c e e d i t o r. a l l t h e p r e f e r - ences assigned using the preference editor are written into the logical preference file (.lpf). figure 8-4 and figure 8-5 show the pin attribute sheet and the cell attribute sheet views of the preference editor. for further information on how to use the preference edit or, refer to the isplever help documentati on located in the help menu option of the software. figure 8-4. pin attributes tab figure 8-5. cell attributes tab
latticeecp/ec and latticexp lattice semiconductor sysio usage guide 8-23 appendix c. sysio attributes us ing preference file (ascii file) you can also enter the sysio attributes directly in the preference (.prf) file as sysio buffer preferences. the prf file is an ascii file containing two sections: a schematic sect ion for preferences created by the mapper or translator, and a user section for preferences entered by the user. you can write user preferences directly into this file. the synthesis attributes appear between the schematic start and schematic end of the file. you can enter the sysio buf- fer preferences after the schematic end line using the preference file syntax. below are a list of sysio buffer prefer- ence syntax and examples. iobuf this preference is used to assign the attribute io_type, pullmode, slewrate and drive. syntax iobuf [allports | port | group ] (keyword=)+; where: = these are not the actual top-level port names, but should be the signal name attached to the port. pios in the physical design (.ncd) f ile are named using this convention. an y multiple listings or wildcarding should be done using groups keyword = io_type, opendrain, dri ve, pullmode, pciclamp, slewrate. example iobuf port "port1" io_type=lvttl33 opendrain=on drive=8 pullmode=up pciclamp =off slewrate=fast; define group "bank1" "in*" "out_[0-31]"; iobuf group "bank1 " io_type=sstl18_ii; locate when this preference is applied to a specified component it places the component at a specified site and locks the component to the site. if applied to a specified macro in stance it places the macros reference component at a specified site, places all of the macros pre-placed components (that is, all components that were placed in the macros library file) in sites relative to the reference component, and locks all of these placed components at their sites. this can also be applied to a specified pgroup. syntax locate [comp | macro ] site ; locate pgroup [site ; | region ;] locate pgroup range [ | ] [] | range []; locate bus < bus_name> row|col ; := string := integer note: if the comp_name, macro_name, or site_name begins with anything other than an alpha character (for exam- ple, 11c7), you must enclose the name in quotes. wildcard expressions are allowed in . example this command places the port clk0 on the site a4:
latticeecp/ec and latticexp lattice semiconductor sysio usage guide 8-24 locate comp ?lk0?site ?4? this command places the component pfu1 on the site named r1c7: locate comp ?fu1?site r1c7? this command places bus1 on row 3 and bus2 on col4 locate bus ?us1?row 3; locate bus bus2 col 4; use din cell this preference specifies the given register to be used as an input flip flop. syntax use din cell ; where: := string example use din cell ?in0? use dout cell specifies the given register to be used as an output flip flop. syntax use dout cell ; where: := string examples use dout cell ?out1? pgroup vref this preference is used to group all the components that need to be associated to one vref pin within a bank. syntax pgroup [(vref )+] (comp )+; locate pgroup bank ; locate vref site ; example pgroup vref_pg1 vref ref1 comp ah(0) comp ah(1) comp ah(2) comp ah(3) comp ah(4) comp ah(5)?comp ah(6)?comp ?h(7)? pgroup ?ref_pg2 vref ref2 comp al(0)?comp al(1)?comp ?l(2)?comp ?l(3) comp ?l(4) comp ?l(5)?comp ?l(6)?comp ?l(7)? locate vref ref1?site pr29c;
latticeecp/ec and latticexp lattice semiconductor sysio usage guide 8-25 locate vref ref2?site pr48b; or locate pgroup ?vref_pg1 bank 2; locate pgroup ?vref_pg2 bank 2;
october 2006 technical note tn1051 ?2006 lattice semiconductor corp. all lattice trademarks, registered trademarks, patents, and disclaimers are as listed at www .latticesemi.com/legal. all other brand or product names are trademarks or registered trademarks of their respective holders. the specifications and information herein are subject to change without notice. www.latticesemi.com 9-1 tn1051_01.8 introduction this technical note discusses memory usage in the latticeec , latticeecp and latticexp device families. it is intended to be used as a guide for integrating the ebr and pfu based memories for these device families using the isplever design tool. the architecture of the latticeecp/ec and latticexp devices provides a large amount of resources for memory intensive applications. the sysmem embedded block ram (ebr) complements its distributed pfu-based mem- ory. single-port ram, dual-port ram, pseudo dual-port ram and rom memories can be constructed using the ebr. luts and pfu can implement distributed single-port ram, dual-port ram and rom. the internal logic of the device can be used to configure the memory elements as fifo and other storage types. the capabilities of the ebr block ram an d pfu ram are referred to as primitives and descr ibed later in this doc- ument. designers can g enerate the memory primitives using the ipexpress tool in the isplever software. the ipexpress gui allows users to specify the memory type and size required. ipexpress takes this specification and constructs a netlist to implement the desired memory by using one or more of the memory primitives. the remainder of th is document discusses how to utilize ipexpres s, memory modules and memory primitives. memories in latticeecp /ec and latticexp devices the latticeecp/ec and latticexp architectures contain an array of logic blocks called pfus or pffs surrounded by programmable i/o cells (pics). interspersed between the rows of logic blocks are rows of sysmem embedded block ram (ebr) as shown in figures 9-1, 9-2 and 9-3. the pfu contains the building blocks for logic, and distr ibuted ram and rom. the pff provides the logic building blocks without the distributed ram this document describes the memory usage and implementation for both embedded memory blocks (ebr) and distributed ram of the pfu. refer to the device data sheet for details on the hardware implementation of the ebr and distributed ram. the logic blocks are arranged in a two-dimensional grid with rows and columns as shown in the figures below. the physical location of the ebr and distributed ram follows the row and column designation. the distributed ram, since it is part of the pfu resource, follows the pfu/ pff row and column designation. the ebr occupies two col- umns per block to account for the wider port interface. memory usage guide for latticeecp/ec and latticexp devices
9-2 memory usage guide lattice semiconductor latticee cp/ec and latti cexp devices figure 9-1. simplified block diag ram, latticeec device (top level) figure 9-2. simplified block diagra m, latticeecp device (top level) programmable i/o cell (pic) includes sysio interface sysconfig programming port (includes dedicated and dual use pins) programmable functional unit (pfu) sysclock pll pff (fast pfu without ram/rom) jtag port sysmem embedded block ram (ebr) programmable i/o cell (pic) includes sysio interface sysconfig programming port (includes dedicated and dual use pins) programmable functional unit (pfu) sysdsp block sysclock pll pff (fast pfu without ram/rom) jtag port sysmem embedded block ram (ebr)
9-3 memory usage guide lattice semiconductor latticee cp/ec and latti cexp devices figure 9-3. simplified block diagram, latticexp device (top level) utilizing ipexpress designers can utilize ipexpress to easily specify a variet y of memories in their desi gns. these modu les will be con- structed using one or more memory primitives along with general purpose routing and luts as required. the avail- able modules are: ?ingle port ram (ram_dq) ebr based ?ual port ram (ram_dp_true) ebr based ?seudo dual port ram (ram_dp) ebr based ?ead only memory (rom) ebr based ?irst in first out memory (fifo and fifo_dc) ebr based ?istributed single port ram (distributed_spram) pfu based ?istributed dual port ram (distributed_dpram) pfu based ?istributed rom (distributed_rom) pfu/pff based ipexpress flow for generating any of these memories, create (or open) a project for the latticeecp/ec or latticexp devices. from the project navigator, select tools > ipexpress . alternatively, users can also click on the button in the tool- bar when the latticeecp/ec and latticexp devices are targeted in the project. this opens the ipexpress window as shown in figure 9-4. programmable i/o cell (pic) includes sysio interface non-volatile memory sysconfig programming port (includes dedicated and dual use pins) programmable functional unit (pfu) sysclock pll pff (pfu without ram) jtag port sysmem embedded block ram (ebr)
9-4 memory usage guide lattice semiconductor latticee cp/ec and latti cexp devices figure 9-4. ipexpress - main window the left pane of this window has the module tree. the ebr-based memory modules are under the module > memory- module > distributed ram and ebr_components and the pfu-based distributed memory modules are under storage_components as shown in figure 9-4. let us look at an example of the generating an ebr-based pseudo dual port ram of size 512 x 16. select ram_dp under the ebr_components. the right pane changes, as shown in figure 9-5.
9-5 memory usage guide lattice semiconductor latticee cp/ec and latti cexp devices figure 9-5. example generating pseudo dual port ram (ram_dp) using ipexpress in the right-hand pane, options like macro type , version , and module_name are device and selected module dependent. these cannot be changed in ipexpress. users can change the directory where th e generated module files will be placed by clicking the browse button in the project path . the file name text box allows users to specify the entity and file name for the module they are about to generate. users must provide this name. design entry , verilog or vhdl, by default is the same as the project type. if the project is a vhdl project, the selected design entry option will be ?chematic/ vhdl? and ?chematic/ ver ilog-hdl?if the project type is verilog- hdl. then click the customize button. this opens another window where the ram can be customized. the the left-hand side of this window shows the block diagram of the module. the right-hand side includes the configuration tab.
9-6 memory usage guide lattice semiconductor latticee cp/ec and latti cexp devices figure 9-6. generating pseudo dual port ram ( ram_dp) module customization ?configuration tab users can specify the address depth and data width for the read port and the write port in the text boxes pro- vided. in this example we are generating a pseudo dual port ram of size 512 x 16. users can also create rams of different port widths in the case of pseudo dual port and true dual port rams. the check box enable output registers inserts the output registers in the read data port, as the output registers are optional for the ebr-based rams. the reset mode can be selected to be asynchrono us reset or sync hronous reset. gsr or global set reset can be checked to be enabled or disabled. the input data and the address control is always registered, as the hardware only supports synchronous opera- tion for the ebr based rams users can also pre-initialize their memory with the contents they specify in the memory file. it is optional to provide this file in the rams. however, in the case of rom, it is required to provide the memory file. these files can be of binary, hex or addresses hex format. the details of these fo rmats are discussed in the in itialization file section of this technical note. at this point, users can click the generate button to generate the module that they have customized. a netlist in the desired format is then generated and placed in the specif ied location. users can incorporate this netlist in their designs. users can check the import lpc to ispl ever project check box to automatically import the file in the project nav- igator. once the module is generated, users can either instantiat e the *.lpc or the verilog-hdl/ vhdl file in the top level module of their design. the various memory modules, both ebr and distributed, are discussed in detail later in this document.
9-7 memory usage guide lattice semiconductor latticee cp/ec and latti cexp devices memory modules single port ram (r am_dq) ?ebr based the ebr blocks in the latticeecp/ec and latticexp devices can be configured as single port ram or ram_dq. ipexpress allows users to generate the verilog-hdl or vhdl along an edif netlist for the memory size as per the design requirements. ipexpress generates the memory module as shown in figure 9-7. figure 9-7. single port memory module generated by ipexpress since the device has a number of ebr blocks, the generated module makes use of these ebr blocks or primitives and cascades them to create the memory sizes specifie d by the user in the ipexpress gui. for memory sizes smaller than an ebr block, the module will be created in one ebr block. in cases where the specified memory is larger than one ebr block, multiple ebr block can be cascaded, in depth or width (as required to create these sizes). the memory primitive for ram_dq for latticeecp/e c and latticexp devices is shown in figure 9-8. figure 9-8. single port ram primitive or ra m_dq for latticeecp/ec and latticexp devices in single port ram mode the input data and address for the ports are registered at the input of the memory array. the output data of the memory is optionally registered. ram_dq ebr-based single port memory clock clocken reset we address data q ad[x:0] di[y:0] clk ce rst we do[y:0] cs[2:0] ebr
9-8 memory usage guide lattice semiconductor latticee cp/ec and latti cexp devices the various ports and their definitions for the single port memory are included in table 9-1. the table lists the cor- responding ports for the module generated by ipexpress and for the ebr ram_dq primitive. table 9-1. ebr-based single por t memory por t definitions reset (or rst) only resets the input and output registers of the ram. it does not reset the contents of the memory. cs, or chip select, a port available in the ebr primitive, is useful when memory requires multiple ebr blocks to be cascaded. the cs signal forms the msb for the address when multiple ebr blocks are cascaded. cs is a 3-bit bus, so it can easily cascade eight memories. if the memo ry size specified by the user requires more than eight ebr blocks, the software automatically generates the additional address decoding logic which is implemented in the pfu (external to the ebr blocks). each ebr block consists of 9,216 bits of ram. the values for x (for address) and y (data) for each ebr block for the devices are included in table 9-2. table 9-2. single por t memory sizes for 9k memories for latticeecp/ec devices table 9-3 shows the various attributes available for the single port memory (ram_dq). some of these attributes are user selectable through the ipexpress gui. for detailed attribute definitions, refer to appendix a. table 9-3. single por t ram attributes for latticeecp/ec devices port name in generated module port name in the ebr block primitive des cription active state clock clk clock rising clock edge clocken ce clock enable active high address ad[x:0] address bus data di[y:0] data in qdo[y:0]data out we we write enable active high reset rst reset active high ?s[2:0]chip select single port memory size input data outp ut data address [msb:lsb] 8k x 1 di do ad[12:0] 4k x 2 di[1:0] do[1:0] ad[11:0] 2k x 4 di[3:0] do[3:0] ad[10:0] 1k x 9 di[8:0] do[8:0] ad[9:0] 512 x 18 di[17:0] do[17:0] ad[8:0] 256 x 36 di[35:0] do[35:0] ad[7:0] attribute description values default value user selectable through ipexpress data_width data word width 1, 2, 4, 9, 18, 36 1 yes regmode register mode (pipelining) noreg, outreg noreg yes resetmode selects the rese t type async, sync async yes csdecode chip select decode 000, 001, 010, 011, 100, 101, 110, 111 000 no writemode read / write mode normal, writethrough,  readbeforewrite normal yes gsr global set reset enabled, disabled enabled yes
9-9 memory usage guide lattice semiconductor latticee cp/ec and latti cexp devices the single port ram (ram_dq) can be configured as normal, read before write or write through modes. each of these modes affects what data comes out of the port q of the memory during the write operation followed by the read operation at the same memory location. the read before write attribute is supported for x9, x18 and x36 data widths. additionally users can select to enable the output registers for ram_dq. figures 8-7 through 8-12 show the inter- nal timing waveforms for the single port ram (ram_dq) with these options. figure 9-9. single port ram timing wavefo rm ?normal mode, without output registers add_0 add_1 add_0 add_1 add_2 data_0 data_1 invalid data data_0 clock wren address data q clocken t suwren_ebr t hwren_ebr t suaddr_ebr t haddr_ebr t sudata_ebr t hdata_ebr t suce_ebr t hce_ebr t co_ebr data_1 data_2
9-10 memory usage guide lattice semiconductor latticee cp/ec and latti cexp devices figure 9-10. single port ram timing wave form normal mode, with output registers figure 9-11. single port ram timing waveform ?read before write mode, without output registers add_0 add_1 add_0 add_1 add_2 data_0 data_1 invalid data data_0 data_1 clock reset wren address data q clocken t suwren_ebr t hwren_ebr t suaddr_ebr t haddr_ebr t sudata_ebr t hdata_ebr t suce_ebr t hce_ebr t coo_ebr add_0 add_0 add_1 add_1 add_2 new data_0 new data_1 invalid data new_data_0 clock wren address data q clocken t suwren_ebr t hwren_ebr t suaddr_ebr t haddr_ebr t sudata_ebr t hdata_ebr t suce_ebr t hce_ebr t co_ebr old_data_1 old_data_0 new_data_1
9-11 memory usage guide lattice semiconductor latticee cp/ec and latti cexp devices figure 9-12. single port ram timing waveform ?read before write mode, with output registers figure 9-13. single port ram timing waveform write through mode, without output registers add_0 add_0 add_1 add_1 add_2 new data_0 new data_1 invalid data new_data_0 clock wren address data q clocken t suwren_ebr t hwren_ebr t suaddr_ebr t haddr_ebr t sudata_ebr t hdata_ebr t suce_ebr t hce_ebr t coo_ebr old_data_1 old_data_0 new data_1 reset add_0 add_1 add_0 data_0 data_1 data_2 data_3 data_4 invalid data data_1 clock wren address data q clocken t suwren_ebr t hwren_ebr t suaddr_ebr t haddr_ebr t sudata_ebr t hdata_ebr t suce_ebr t hce_ebr t co_ebr data_2 data_0 data_3 data_4
9-12 memory usage guide lattice semiconductor latticee cp/ec and latti cexp devices figure 9-14. single port ram timing waveform ?write through mode, with output registers add_0 add_1 add_0 data_0 data_1 data_2 data_3 data_4 invalid data data_1 clock wren address data q clocken t suwren_ebr t hwren_ebr t suaddr_ebr t haddr_ebr t sudata_ebr t hdata_ebr t suce_ebr t hce_ebr t coo_ebr data_2 data_0 data_3 reset
9-13 memory usage guide lattice semiconductor latticee cp/ec and latti cexp devices true dual por t ram (r am_dp_true) ?ebr based the ebr blocks in the latticeecp/ec and latticexp devices can be configured as true-dual port ram or ram_dp_true. ipexpress allows users to generate the verilog-hdl, vhdl or edif netlists for the memory size as per design requirements. ipexpress generates the memory module as shown in figure 9-15. figure 9-15. true dual port memory module generated by ipexpress the generated module makes use of the ram_dp_true primitive. for memory sizes smaller than one ebr block, the module will be created in on e ebr block. in cases where the specif ied memory is lar ger than one ebr block, multiple ebr blocks can be cascaded, in depth or width (as required to create these sizes). the basic memory primitive for the latticeecp/ec and latticexp devices, ram_dp_true, is shown in figure 9- 16. figure 9-16. true dual port ram primitive or ram_dp_true for latticeecp/ec and latticexp devices in true dual port ram mode, the input data and address for the ports are registered at the input of the memory array. the output data of the memory is optionally registered at the output. ram_dp_true ebr-based true dual port memory clocka clockena reseta wea wraddressa dataa qa clockb clockenb resetb web wraddressb datab qb ada[x:0] dia[y:0] clka cea rsta wea csa[2:0] ebr doa[y:0] adb[x:0] dib[y:0] clkb ceb rstb web csb[2:0] dob[y:0]
9-14 memory usage guide lattice semiconductor latticee cp/ec and latti cexp devices the various ports and their definitions for the true dual memory are included in table 9-4. the table lists the corre- sponding ports for the module generated by ipexpress and for the ebr ram_dp_true primitive. table 9-4. ebr-based true dual por t memory por t definitions reset (or rst) only resets the input and output registers of the ram. it does not reset the contents of the memory. cs, or chip select, a port available in the ebr primitive, is useful when memory requires multiple ebr blocks to be cascaded. the cs signal would form the msb for the addre ss when multiple ebr blocks are cascaded. cs is a 3- bit bus, so it can easily cascade eight memories. however, if the memory size specified by the user requires more than eight ebr blocks, the software automatically generate s the additional address deco ding logic, which is imple- mented in the pfu external to the ebr blocks. each ebr block consists of 9,216 bits of ram. the values for x (for address) and y (data) for each ebr block for the devices are included in table 9-5. table 9-5. true dual por t memory sizes for 9k memory for latticeecp/ec and latticexp devices table 9-6 shows the various attributes available for true dual port memory (ram_dp_true). some of these attri- butes are user selectable through the ipexpress gui. for detailed attribute definitions, refer to appendix a. port name in generated module port name in the ebr block primitive description active state clocka, clockb clka, clkb clock for porta and portb rising clock edge clockena, clockenb cea, ceb clock enables for port clka and clkb active high addressa, addressb ada[x:0], adb[x:0] address bus port a and port b dataa, datab dia[y:0], dib[y:0] input data port a and port b qa, qb doa[y:0], dob[y:0] output data port a and port b wea, web wea, web write enable port a and port b active high reseta, resetb rsta, rstb reset for port a and port b active high ?sa[2:0], csb[2:0] chip selects for each port dual port memory size input data port a input data port b output data port a output data port b address port a [msb:lsb] address port b [msb:lsb] 8k x 1 dia dib doa dob ada[12:0] adb[12:0] 4k x 2 dia[1:0] dib[1:0] doa[1:0 ]dob[1:0]ada[11:0]adb[11:0] 2k x 4 dia[3:0] dib[3:0] doa[3:0 ]dob[3:0]ada[10:0]adb[10:0] 1k x 9 dia[8:0] dib[8:0] doa[8 :0] dob[8:0] ada[9:0] adb[9:0] 512 x 18 dia[17:0] dib[17:0] doa[17 :0] dob[17:0] ada[8:0] adb[8:0]
9-15 memory usage guide lattice semiconductor latticee cp/ec and latti cexp devices table 9-6. true dual por t ram attrib utes for latticeecp/ec and latticexp the true dual port ram (ram_dp_true) can be conf igured as normal, read before write or write through modes. each of these modes affects what data comes out of the port q of the memory during the write operation followed by the read operation at the same memory location. the read before write attribute is supported for x9 and x18 data widths. detailed discussions of the write modes and the constraints of the true dual port can be found in appendix a. additionally users can select to enable the output registers for ram_dp_true. figures 8-15 through 8-20 show the internal timing waveforms for the true dual port ram (ram_dp_true) with these options. attribute description values default value user selectable through ipexpress data_width_a data word width port a 1, 2, 4, 9, 18 1 yes data_width_b data word width port b 1, 2, 4, 9, 18 1 yes regmode_a register mode (pipelining) for port a noreg, outreg noreg yes regmode_b register mode (pipelining) for port b noreg, outreg noreg yes resetmode selects the reset type async, sync async yes csdecode_a chip select decode for port a 000, 001, 010, 011, 100, 101, 110, 111 000 no csdecode_b chip select decode for port b 000, 001, 010, 011, 100, 101, 110, 111 000 no writemode_a read / write mode for port a normal, writethrough, readbeforewrite normal yes writemode_b read / write mode for port b normal, writethrough, readbeforewrite normal yes gsr global set reset enabled, disabled enabled yes
9-16 memory usage guide lattice semiconductor latticee cp/ec and latti cexp devices figure 9-17. true dual port ram timing wave form normal mode, without output registers add_a0 add_a1 add_a0 add_a1 add_a2 data_a0 data_a1 invalid data data_a0 clocka wrena addressa dataa qa clockena t suwren_ebr t hwren_ebr t suaddr_ebr t haddr_ebr t sudata_ebr t hdata_ebr t suce_ebr t hce_ebr t co_ebr data_a1 data_a2 add_b0 add_b1 add_b0 add_b1 add_b2 data_b0 data_b1 invalid data data_b0 clockb wrenb addressb datab qb clockenb t suwren_ebr t hwren_ebr t suaddr_ebr t haddr_ebr t sudata_ebr t hdata_ebr t suce_ebr t hce_ebr t co_ebr data_b1 data_b2
9-17 memory usage guide lattice semiconductor latticee cp/ec and latti cexp devices figure 9-18. true dual port ram timing wa veform normal mode with output registers add_a0 add_a1 add_a0 add_a1 add_a2 data_a0 data_a1 clocka wrena addressa dataa qa clockena t suwren_ebr t hwren_ebr t suaddr_ebr t haddr_ebr t sudata_ebr t hdata_ebr t suce_ebr t hce_ebr add_b0 add_b1 add_b0 add_b1 add_b2 data_b0 data_b1 invalid data data_b0 clockb wrenb addressb datab qb clockenb t suwren_ebr t hwren_ebr t suaddr_ebr t haddr_ebr t sudata_ebr t hdata_ebr t suce_ebr t hce_ebr t coo_ebr data_b1 invalid data data_a0 t coo_ebr data_a1 reset
9-18 memory usage guide lattice semiconductor latticee cp/ec and latti cexp devices figure 9-19. true dual port ram timing wavefo rm ?read before write mode, without output regis- ters add_a0 add_a0 add_a1 add_a1 add_a2 new data_a0 new data_a1 invalid data new_data_a0 clocka wrena addressa dataa qa clockena t suwren_ebr t hwren_ebr t suaddr_ebr t haddr_ebr t sudata_ebr t hdata_ebr t suce_ebr t hce_ebr t co_ebr old_data_a1 old_data_a0 new_data_a1 add_b0 add_b0 add_b1 add_b1 add_b2 new data_b0 new data_b1 invalid data new_data_b0 clockb wrenb addressb datab qb clockenb t suwren_ebr t hwren_ebr t suaddr_ebr t haddr_ebr t sudata_ebr t hdata_ebr t suce_ebr t hce_ebr t co_ebr old_data_b1 old_data_b0 new_data_b1 reset
9-19 memory usage guide lattice semiconductor latticee cp/ec and latti cexp devices figure 9-20. true dual port ram timing waveform ?read before write mode, with output registers add_a0 add_a0 add_a1 add_a1 add_a2 new data_a0 new data_a1 invalid data new_data_a0 clocka wrena addressa dataa qa clockena t suwren_ebr t hwren_ebr t suaddr_ebr t haddr_ebr t sudata_ebr t hdata_ebr t suce_ebr t hce_ebr t coo_ebr old_data_a1 old_data_a0 new data_a1 add_b0 add_b0 add_b1 add_b1 add_b2 new data_b0 new data_b1 invalid data new_data_b0 clockb wrenb addressb datab qb clockenb t suwren_ebr t hwren_ebr t suaddr_ebr t haddr_ebr t sudata_ebr t hdata_ebr t suce_ebr t hce_ebr t coo_ebr old_data_b1 old_data_b0 new data_b1
9-20 memory usage guide lattice semiconductor latticee cp/ec and latti cexp devices figure 9-21. true dual port ram timing waveform write through mode, without output registers add_a0 add_a1 add_a0 data_a0 data_a1 data_a2 data_a3 data_a4 invalid data data_a1 clocka wrena addressa dataa qa clockena t suwren_ebr t hwren_ebr t suaddr_ebr t haddr_ebr t sudata_ebr t hdata_ebr t suce_ebr t hce_ebr t co_ebr data_a2 data_a0 data_a3 data_a4 add_b0 add_b1 add_b0 data_b0 data_b1 data_b2 data_b3 data_b4 invalid data data_b1 clockb wrenb addressb datab qb clockenb t suwren_ebr t hwren_ebr t suaddr_ebr t haddr_ebr t sudata_ebr t hdata_ebr t suce_ebr t hce_ebr t co_ebr data_b2 data_b0 data_b3 data_b4
9-21 memory usage guide lattice semiconductor latticee cp/ec and latti cexp devices figure 9-22. true dual port ram timing waveform write through mode, with output registers add_0 add_1 add_0 data_0 data_1 data_2 data_3 data_4 invalid data data_1 clocka wrena addressa dataa qa clockena t suwren_ebr t hwren_ebr t suaddr_ebr t haddr_ebr t sudata_ebr t hdata_ebr t suce_ebr t hce_ebr t coo_ebr data_2 data_0 data_3 add_0 add_1 add_0 data_0 data_1 data_2 data_3 data_4 invalid data data_1 clockb wrenb addressb datab qb clockenb t suwren_ebr t hwren_ebr t suaddr_ebr t haddr_ebr t sudata_ebr t hdata_ebr t suce_ebr t hce_ebr t coo_ebr data_2 data_0 data_3 reset
9-22 memory usage guide lattice semiconductor latticee cp/ec and latti cexp devices pseudo dual port ram (ram_dp) ebr-based the ebr blocks in the latticeecp/ec and latticexp de vices can be configured as pseudo-dual port ram or ram_dp. ipexpress allows users to generate the verilog-hdl or vhdl along with an edif netlist for the memory size as per design requirements. ipexpress generates the memory module, as shown in figure 9-23. figure 9-23. pseudo dual port memory module generated by ipexpress the generated module makes use of these ebr blocks or primitives. for memory sizes smaller than an ebr block, the module will be created in one ebr bloc k. if the specified memory is larger than one ebr block, multiple ebr block can be cascaded, in depth or width (as required to create these sizes). the basic pseudo dual port memory primitive for the la tticeecp/ec and latticexp devices is shown in figure 9- 24. figure 9-24. pseudo dual port ram primitive or ram_dp for latticeecp/ec and latticexp devices in the pseudo dual port ram mode, the input data and address for the ports are registered at the input of the memory array. the output data of the memory is optionally registered at the output. the various ports and their definitions for the single port memory are included in table 9-7. the table lists the cor- responding ports for the module generated by ipexpress and for the ebr ram_dp primitive. ram_dp ebr based pseudo dual port memory wrclock wrclocken reset we wraddress data rdclock rdclocken rdaddress q adw[x:0] di[y:0] clkw cew rst we cs[2:0] ebr adr[x:0] clkr cer do[y:0]
9-23 memory usage guide lattice semiconductor latticee cp/ec and latti cexp devices table 9-7. ebr based pseudo-dual por t memory por t definitions reset (or rst) only resets the input and output registers of the ram. it does not reset the contents of the memory. cs, or chip select, a port available in the ebr primitive, is useful when memory requires multiple ebr blocks to be cascaded. the cs signal forms the msb for the address when multiple ebr blocks are cascaded. cs is a 3-bit bus, so it can cascade eight memories easily. however, if the memory size specified by the user requires more than eight ebr blocks, the software automatically generates the additional address decoding logic, which is imple- mented in the pfu (external to the ebr blocks). each ebr block consists of 9,216 bits of ram. the values for x (for address) and y (data) for each ebr block for the devices are included in table 9-8. table 9-8. pseudo-dual por t memory sizes for 9k memory for latticeecp/ec and latticexp devices ta bl e 9 - 9 s h o w s t h e va r i o u s a t t r i bu t e s ava i l a b l e fo r t h e p s e u d o d u a l po r t m e m o r y ( r a m _ d p ) . s o m e o f t h e s e a t t r i - butes are user selectable through the ipexpress gui. for detailed attribute definitions, refer to appendix a. port name in generated module port name in the ebr block primitive description active state rdaddress adr[x:0] read address wraddress adw[x:0] write address rdclock clkr read clock rising clock edge wrclock clkw write clock rising clock edge rdclocken cer read clock enable active high wrclocken cew write clock enable active high qdo[y:0]read data data di[y:0] write data we we write enable active high reset rst reset active high ?s[2:0]chip select pseudo-dual port memory size input data port a input data port b output data port a output data port b read address port a [msb:lsb] write address port b [msb:lsb] 8k x 1 dia dib doa dob rad[12:0] wad[12:0] 4k x 2 dia[1:0] dib[1:0] doa[1:0 ]dob[1:0]rad[11:0]wad[11:0] 2k x 4 dia[3:0] dib[3:0] doa[3:0 ]dob[3:0]rad[10:0]wad[10:0] 1k x 9 dia[8:0] dib[8:0] doa[8 :0] dob[8:0] rad[9:0] wad[9:0] 512 x 18 dia[17:0] dib[17:0] doa[17 :0] dob[17:0] ra d[9:0] wad[9:0]
9-24 memory usage guide lattice semiconductor latticee cp/ec and latti cexp devices table 9-9. pseudo-dual por t ram attributes for latticeecp/ec and latticexp devices users have the option of enabling the output registers for pseudo-dual port ram (ram_dp). figures 8-23 and 8- 24 show the internal timing waveforms for the pseudo-dual port ram (ram_dp) with these options. figure 9-25. pseudo dual port ram timi ng diagram ?without output registers attribute description values default value user selectable through ipexpress data_width_w write data word width 1, 2, 4, 9, 18, 36 1 yes data_width_r read data word width 1, 2, 4, 9, 18, 36 1 yes regmode register mode (pipelining) noreg, outreg noreg yes resetmode selects the reset type async, sync async yes csdecode_w chip select decode for write 000 , 001, 010, 011, 100, 101, 110, 111 000 no csdecode_r chip select decode for read 000, 001, 010, 011, 100, 101, 110, 111 000 no gsr global set reset enabled, disabled enabled yes data_0 data_1 data_2 invalid data data_0 wrclock data q wrclocken t sudata_ebr t hdata_ebr t suce_ebr t hce_ebr t co_ebr data_1 dat a_2 add_0 add_1 add_2 rdaddress t suaddr_ebr t haddr_ebr rdclock rdclocken t suce_ebr t hce_ebr add_0 add_1 add_2 wraddress t suaddr_ebr t haddr_ebr
9-25 memory usage guide lattice semiconductor latticee cp/ec and latti cexp devices figure 9-26. pseudo dual port ram ti ming diagram ?with output registers read only memory (rom) ebr based the ebr blocks in the latticeecp/ec and latticexp devices can be configured as read only memory or rom. ipexpress allows users to generate the verilog-hdl or vhdl along with an edif netlist for the memory size as per design requirements. users are required to provide the rom memory content in the form of an initialization file. ipexpress generates the memory module as shown in figure 9-27. figure 9-27. rom - read only memory module generated by ipexpress the generated module makes use of these ebr blocks or primitives. for memory sizes smaller than an ebr block, the module will be created in one ebr bloc k. if the specified memory is larger than one ebr block, multiple ebr blocks can be cascaded, in depth or width (as required to create these sizes). the basic rom primitive for the latticeecp/ec and latticexp devices is as shown in figure 9-28. data_0 data_1 data_2 invalid data data_0 wrclock data q wrclocken t sudata_ebr t hdata_ebr t suce_ebr t hce_ebr t coo_ebr dat a_1 add_0 add_1 add_2 rdaddress t suaddr_ebr t haddr_ebr rdclock rdclocken t suce_ebr t hce_ebr add_0 add_1 add_2 wraddress t suaddr_ebr t haddr_ebr rom ebr based read only memory outclock outclocken reset address q
9-26 memory usage guide lattice semiconductor latticee cp/ec and latti cexp devices figure 9-28. rom primitive for latticeecp/ec and latticexp devices in the rom mode the address for the port is registered at the input of the memory array. the output data of the memory is optionally registered at the output. the various ports and their definitions for the rom are included in table 9-10. the table lists the corresponding ports for the module generated by ipexpress and for the rom primitive. table 9-10. ebr-based rom por t definitions reset (or rst) only resets the input and output registers of the ram. it does not reset the contents of the memory. cs, or chip select, a port available in the ebr primitive, is useful when memory requires multiple ebr blocks to be cascaded. the cs signal forms the msb for the address when multiple ebr blocks are cascaded. cs is a 3-bit bus, so it can cascade eight memories easily. however, if the memory size specified by the user requires more than eight ebr blocks, the software automatically generates the additional address decoding logic, which is imple- mented in the pfu (external to the ebr blocks). while generating the rom using ipexpress, the user is required to provide an initialization file to pre-initialize the contents of the rom. these file are the *.mem files and they can be of binary, hex or the addressed hex formats. the initialization files are discussed in detail in the initializing memory section of this technical note. users have the option of enabling the output registers for read only memory (rom). figures 8-27 and 8-28 show the internal timing waveforms for the read only memory (rom) with these options. port name in generated module port name in the ebr block primitive description active state address ad[x:0] read address outclock clk clock rising clock edge outclocken ce clock enable active high reset rst reset active high ?s[2:0]chip select ad[x:0] clk ce ebr do[y:0] rst cs[2:0]
9-27 memory usage guide lattice semiconductor latticee cp/ec and latti cexp devices figure 9-29. rom timing waveform ?without output registers figure 9-30. rom timing waveform ?with output registers add_0 add_1 add_2 add_3 add_4 invalid data data_0 outclock address q outclocken t suaddr_ebr t haddr_ebr t suce_ebr t hce_ebr t co_ebr data_1 data_2 data_3 data_4 add_0 add_1 add_2 add_3 add_4 invalid data data_0 outclock address q outclocken t suaddr_ebr t haddr_ebr t suce_ebr t hce_ebr t coo_ebr data_1 data_2 data_3
9-28 memory usage guide lattice semiconductor latticee cp/ec and latti cexp devices first in first out (fifo, fifo_dc) ?ebr based the ebr blocks in the latticeecp/ec and latticexp devices can be configured as first in first out memories fifo and fifo_dc. fifo has a common clock for both read and write ports and fifo_dc (or dual clock fifo) has separate clocks for these ports. ipexpress allows us ers to generate the verilog-hdl or vhdl along with an edif netlist for the memory size as per design requirement. ipexpress generates the fifo and fifo_dc memory module as shown in figures 9-31 and 9-32. figure 9-31. fifo module generated by ipexpress figure 9-32. fifo_dc module generated by ipexpress latticeecp/ec and latticexp devices do not have a built in fifo. these devices have an emulated fifo and fifo_dc. these are emulated by creating a wrapper aro und the existing rams (like ra m_dp). this wrapper also includes address pointer generation an d fifo flag generation logic which will be implemented external to the ebr block. therefore, in addition to the regular ebr usage, there is extra logic for the address pointer generation and fifo flag generation. a clock is always required as only synchronous write is supported. the various ports and their definitions for the fifo and fifo_dc are included in table 11. fifo ebr based first-in first-out memory clock wren rden reset q data full almost full empty almost empty fifo ebr based first-in first-out memory wrclock wren rden reset q data full almost full empty almost empty rdclock
9-29 memory usage guide lattice semiconductor latticee cp/ec and latti cexp devices table 9-11. ebr-based fifo and fifo_dc memory por t definitions reset (or rst) only resets the output registers of the fifo and fifo_dc. it does not reset the contents of the memory. the various supported sizes for the fifo and fifo_dc in latticeecp/ec and latticexp devices are shown in ta bl e 9 - 1 2 . table 9-12. fifo and fifo_dc data widths sizes for latticeecp/ec and latticexp devices fifo flags the fifo and fifo_dc have four flags available: empty, almost empty, almost full and full. the almost empty and almost full flags have a programmable range. the program ranges for the four fifo flags are specified in table 9-13. table 9-13. fifo flag settings the only restriction on the flag setting is that the values must be in a specific order (empty=0, almost empty next, followed by almost full and full, respectively). the value of empty is not equal to the value of almost empty (or full is equal to almost full). in this case, a warning is gene rated and the value of empty (or full) is used in place of almost empty (or almost full). when coming out of rese t, the active high flags empty and almost empty are set to high, since they are true. port name in generated module description clk clock (fifo) rising clock edge clkr read port clock (fifo_dc) rising clock edge clkw write port clock (fifo_dc) rising clock edge we write enable active high re read enable active high rst reset active high di data input do data output ff full flag active high af almost full flag active high ef empty flag active high ae almost empty active high fifo size input data output data 8k x 1 di do 4k x 2 di[1:0] do[1:0] 2k x 4 di[3:0] do[3:0] 1k x 9 di[8:0] do[8:0] 512 x 18 di[17:0] do[17:0] 256 x 36 di[35:0] do[35:0] fifo attribute name description p rogramming range program bits ff full flag setting 2n - 1 14 aff almost full setting 1 to (ff-1) 14 aef almost empty setting 1 to (ff-1) 14 ef empty setting 0 5
9-30 memory usage guide lattice semiconductor latticee cp/ec and latti cexp devices the user should specify the absolute va lue of the address at which the almost empty a nd almost full flags will go true. for example, if the almost full flag is required to go true at the address location 500 for a fifo of depth 512, the user should specify the value 500 in the ipexpress. the empty and almost empty flags are always registered with the read clock and the full and almost full flags are always registered to the write clock. fifo operation fifos are not supported in the hardware. the hardware has embedded block rams (ebr) which can be config- ured in single port (ram_dq), pseudo-dual port (ram_dp) and true dual port (ram_dp_true) rams. the fifos in these devices are emulated fifos that are built around these rams. each of these fifos can be configured with (pipelined) and without (non-pipelined) output registers. in the pipe- lined mode users have an extra option fo r these output registers to be enabled by the rden signal. we will discuss the operation in the following sections. let us take a look at the operation of these fifos. first in first out (fifo) memory: the fifo or the single clock fifo is an emulated fifo. the address logic and the flag logic is implemented in the fpga fabric around the ram. the ports available on the fifo are: ?eset ?lock ?ren ?den ?ata ? ?ull flag ?lmost full flag ?mpty flag ?lmost empty flag let us first discuss the non-pipelined or the fifo without output registers. figure 9-33 shows the operation of the fifo when it is empty and the data starts to get written into it.
9-31 memory usage guide lattice semiconductor latticee cp/ec and latti cexp devices figure 9-33. fifo without output registers, start of data write cycle the wren signal has to be high to start writing into the fifo. the empty and almost empty flags are high to begin and full and almost full are low. when the first data gets written into the fifo, the empty flag de-asserts (or goes low), as the fifo is no longer empty. in this figure we are assuming that the almost em pty setting flag setting is 3 (address location 3). so the almost empty flag gets de-asserted when the 3rd address loca tion gets filled. now let is assume that we continue to write into the fifo to fill it. when the fifo is filled, the almost full and full flags are asserted. figure 9-34 shows the behavior of these flags. in this figure we assume that fifo depth is ?? data_1 invalid data data_2 data_3 data_4 data_5 clock reset wren rden data empty almost empty full almost full invalid q q
9-32 memory usage guide lattice semiconductor latticee cp/ec and latti cexp devices figure 9-34. fifo without output re gisters, end of data write cycle in this case, as seen above, the almost full flag is in lo cation 2 before the fifo is f illed. the almost full flag is asserted when n-2 location is written, and full flag is asserted when the last word is written into the fifo. data_x data inputs do not get written as the fifo is full (full flag is high). now let us look at the waveforms when the contents of the fifo are read out. figure 9-35 shows the start of the read cycle. rden goes high and the data read starts. the full and almost full flags gets de-asserted as shown. data_n-2 data_n-1 data_n data_x clock reset wren rden data empty almost empty full almost full invalid q q data_x
9-33 memory usage guide lattice semiconductor latticee cp/ec and latti cexp devices figure 9-35. fifo without output registers, start of data read cycle similarly as the data is read out, and fifo is emptied, the almost empty and empty flags are asserted. below is the figure 9-36. fifo without output re gisters, end of data read cycle data_1 invalid data data_2 data_3 data_4 data_5 clock reset wren rden data empty almost empty full almost full invalid data q data_n-3 data_n-2 data_n-1 data_n clock reset wren rden data empty almost empty full almost full invalid data q data_n-4
9-34 memory usage guide lattice semiconductor latticee cp/ec and latti cexp devices figures 9-33 to 9-36 show the behavior of non-pipelined fifo or fifo without output registers. when we pipeline the registers, the output data is delayed by one clock cycle. there is an extra option of output registers being enabled by rden signal. figures 9-37 to 9-40 show the similar waveforms for the fifo with output register and without output register enable with rden. it should be noted that flags are asserted and de-asserted with similar timing to the fifo with- out output registers. however it is only the data out 'q' that gets delayed by one clock cycle. figure 9-37. fifo with output registers, start of data write cycle data_1 invalid data data_2 data_3 data_4 data_5 clock reset wren rden data empty almost empty full almost full invalid q q
9-35 memory usage guide lattice semiconductor latticee cp/ec and latti cexp devices figure 9-38. fifo with output registers, end of data write cycle figure 9-39. fifo with output registers, start of data read cycle data_n-2 data_n-1 data_n data_x clock reset wren rden data empty almost empty full almost full invalid q q data_x data_1 invalid data data_2 data_3 data_4 clock reset wren rden data empty almost empty full almost full invalid data q
9-36 memory usage guide lattice semiconductor latticee cp/ec and latti cexp devices figure 9-40. fifo with output registers, end of data read cycle and finally, if you select the option enab le output register with rden, it still delays the data out by one clock cycle (as compared to the non-pipelined fifo), and the rden should be high also during that clock cycle, otherwise the data takes an extra clock cycle when the rden goes true. figure 9-41. fifo with output registers and rden on output registers data_n-4 data_n-3 data_n-2 data_n-1 data_n clock reset wren rden data empty almost empty full almost full invalid data q data_n-5 data_1 invalid data data_2 data_3 data_4 data_5 clock reset wren rden data empty almost empty full almost full q data_1 invalid data data_2
9-37 memory usage guide lattice semiconductor latticee cp/ec and latti cexp devices dual clock first in first out (fifo_dc) memory: the fifo_dc or the dual clock fifo is also an emulated fifo. again the address logic and the flag logic is implemented in the fpga fabric around the ram. the ports available on the fifo_dc are: ?eset ?preset ?rclock ?dclock ?ren ?den ?ata ? ?ull flag ?lmost full flag ?mpty flag ?lmost empty flag fifo_dc flags: fifo_dc, as an emulated fifo, required the flags to be implemented in the fpga logic around the block ram. because of the two clocks, the flags are required to change clock domains from read clock to write clock and vice versa. this adds latency to the flags either during assertion or during de-assertion. the latency can be avoided only in one of the cases (either assertion or de-assertion). in the current emulated fifo, there is no latency during assertion of these flags. thus, when these flag go true, there is no latency. however this causes the latency during the de-assertion. let us assume that we start to write into the fifo _dc to fill it. the write operatio n is controlled by wrclock and wren, however it takes extra rdclock cycles for de-assertion of empty and almost empty flags. on the other hand, de-assertion of full and almost full result in reading out the data from the fifo_dc. it takes extra wrclock cycles after reading the data for these flags to come out. with this in mind, let us look at the fifo_dc without output register waveforms. figure 9-42 shows the operation of the fifo_dc when it is empty and the data starts to get written into it.
9-38 memory usage guide lattice semiconductor latticee cp/ec and latti cexp devices figure 9-42. fifo_dc without output re gisters, start of data write cycle the wren signal has to be high to start writing into the fifo_dc. the empty and almost empty flags are high to begin and full and almost full are low. when the first data gets written into the fifo_dc, the empty flag de-asserts (or goes low), as the fifo_dc is no longer empty. in this figure we are assuming that the almost empty setting flag setting is 3 (address location 3). so the almost empty flag gets de- asserted when the third addr ess location gets filled. now let is assume that we continue to write into the fifo_dc to fill it. when the fifo_dc is fille d, the almost full and full flags are asserted. figure 9-43 shows the behavior of these flags. in this figure we assume that fifo_dc depth is ?? data_1 invalid data data_2 data_3 data_4 data_5 wrclock reset wren rden data empty almost empty full almost full invalid q q rdclock rpreset
9-39 memory usage guide lattice semiconductor latticee cp/ec and latti cexp devices figure 9-43. fifo_dc without output registers, end of data write cycle in this case, the almost full flag is in location 2 before the fifo _dc is filled. the almost full flag is asserted when n-2 location is written, and full fl ag is asserted when the last wo rd is written into the fifo_dc. data_x data inputs do not get written as the fifo_dc is full (full flag is high). note that the assertion of these flags is immediate and there is no latency when they go true. now let us look at the waveforms when the contents of the fifo_dc are read out. figure 9-44 shows the start of the read cycle. rden goes high and the data read starts. the full and almost full flags get de-asserted as shown. in this case, note that the de-assertion is delayed by two clock cycles. wrclock reset empty almost empty full almost full invalid q q rdclock rpreset data_n-2 data_n-1 data_n data_x data_x wren rden data
9-40 memory usage guide lattice semiconductor latticee cp/ec and latti cexp devices figure 9-44. fifo_dc without output re gisters, start of data read cycle similarly, as the data is read out and fifo_dc is emptied, the almost empty and empty flags are asserted. below is the figure 9-45. fifo_dc without output registers, end of data read cycle wrclock reset empty almost empty full almost full invalid data q rdclock rpreset data_1 data_2 invalid q wren rden data data_3 data_6 data_5 data_4 wrclock reset empty almost empty full almost full invalid data q rdclock rpreset wren rden data data_n-2 data_n-1 data_n data_n data_n-3
9-41 memory usage guide lattice semiconductor latticee cp/ec and latti cexp devices figures 9-42 to 9-45 show the behavior of non-pipelined fifo_dc or fifo_dc without output registers. when we pipeline the registers, the output data is delayed by one clock cycle. there is an extra option for output registers to be enabled by the rden signal. figures 9-46 to 9-49 show similar waveforms for the fifo_dc with output register and without output register enable with rden. it should be noted that flags are asserted and de-asserted with similar timing to the fifo_dc without output registers. however it is only the data out ??that is delayed by one clock cycle. figure 9-46. fifo_dc with output re gisters, start of data write cycle data_1 invalid data data_2 data_3 data_4 data_5 wrclock reset wren rden data empty almost empty full almost full invalid q q rdclock rpreset
9-42 memory usage guide lattice semiconductor latticee cp/ec and latti cexp devices figure 9-47. fifo_dc with output re gisters, end of data write cycle figure 9-48. fifo_dc with output registers, start of data read cycle wrclock reset empty almost empty full almost full invalid q q rdclock rpreset data_n-2 data_n-1 data_n invalid data invalid data wren rden data wrclock reset empty almost empty full almost full invalid data q rdclock rpreset data_1 invalid q wren rden data data_2 data_5 data_4 data_3
9-43 memory usage guide lattice semiconductor latticee cp/ec and latti cexp devices figure 9-49. fifo_dc with output registers, end of data read cycle finally, if you select the option enable output register with rden, it still dela ys the data out by one clock cycle (as compared to the non-pipelined fifo_dc), and the rden should be high also during that clock cycle. otherwise the data takes an extra clock cycle when the rden is goes true. figure 9-50. fifo_dc with output registers and rden on output registers wrclock reset empty almost empty full almost full invalid data q rdclock rpreset wren rden data data_n-3 data_n-2 data_1 data_n data_n-4 wrclock reset empty almost empty full almost full invalid data q rdclock rpreset invalid q wren rden data data_3 data_2 data_1
9-44 memory usage guide lattice semiconductor latticee cp/ec and latti cexp devices distributed single port ram (d istributed_spram ) ?pfu based pfu-based distributed single port ram is created using the 4-input lut (look-up table) available in the pfu. these luts can be cascaded to create larger distribute d memory sizes. the memorys address and output regis- ters are optional. figure 9-51 shows the distributed single port ram module as generated by the ipexpress. figure 9-51. distributed single port ram module generated by ipexpress the generated module makes use of the 4-input lut available in the pfu. additional logic like clock, clocken and reset is generated by utilizing the resources available in th e pfu. the basic distributed single port ram primitive for the latticeecp/ec and latticexp devices is shown in figure 9-52. figure 9-52. distributed single port ram (distributed_spram) for latticeecp/ec and latticexp devices ports such as read clock (rdclock) and read clock enab le (rdclocken) are not ava ilable in the hardware primi- tive. these are generated by ipexpress when the user wants to enable the output registers in the ipexpress config- uration. the various ports and their definitions for the memory are included in table 9-14. the table lists the corresponding ports for the module generated by ipexpress and for the primitive. pfu based distributed single port memory clock clocken reset we address q data ad[3:0] ck wre pfu do[1:0] di[1:0]
9-45 memory usage guide lattice semiconductor latticee cp/ec and latti cexp devices table 9-14. pfu based distributed single por t ram por t definitions users have an option of enabling the output registers for distributed single port ram (distributed_spram). fig- ures 8-35 and 8-36 show the internal timing waveforms for the distributed single port ram (distributed_spram) with these options. figure 9-53. pfu based distributed single port ram timing waveform - without output registers port name in generated module port name in the ebr block primitive description active state clock ck clock rising clock edge clocken - clock enable active high reset - reset active high we wre write enable active high address ad[3:0] address data di[1:0] data in qdo[1:0]data out add_0 add_1 add_0 add_1 add_2 data_0 data_1 invalid data data_0 clock we address data q clocken t hwren_pfu t suaddr_pfu t haddr_pfu t sudata_pfu t hdata_pfu t coram_pfu data_1 t suwren_pfu data_2
9-46 memory usage guide lattice semiconductor latticee cp/ec and latti cexp devices figure 9-54. pfu based distributed single port ram timing waveform ?with output registers distributed dual port ram (distributed_dpram) ?pfu based pfu-based distributed dual port ram is also created using the four input lut (look-up table) available in the pfu. these luts can be cascaded to create larger distributed memory sizes. figure 9-55 shows the distributed single port ram module as generated by ipexpress. figure 9-55. distributed dual port ram module generated by ipexpress the generated module makes use of a 4-input lut available in the pfu. additional logic for clocks, clock enables and reset is generated by utilizing the re sources available in the pfu. the ba sic distributed dual port ram primi- tive for the latticeecp/ec and latticexp devices is shown in figure 9-56. add_0 add_1 add_0 add_1 add_2 data_0 data_1 invalid data data_0 clock we address data q clocken t hwren_pfu t suaddr_pfu t haddr_pfu t sudata_pfu t hdata_pfu t co? t suwren_pfu reset data_1 data_2 pfu based distributed dual port memory wraddress rdaddress rdclock rdclocken reset q we wrclock wrclocken data
9-47 memory usage guide lattice semiconductor latticee cp/ec and latti cexp devices figure 9-56. pfu-based distributed dual port ram for latticeecp/ec and latticexp devices ports such as read clock (rdclock) and read clock enab le (rdclocken) are not ava ilable in the hardware primi- tive. these are generated by ipexpress when the user wants the to enable the output registers in the ipexpress configuration. the various ports and their definitions for the memory are included in table 9-15. the table lists the corresponding ports for the module generated by ipexpress and for the primitive. table 9-15. pfu-based distributed dual-por t ram por t definitions users have the option of enabling the output registers for distributed dual port ram (distributed_dpram). fig- ures 8-39 and 8-40 show the internal timing waveforms for the distributed dual port ram (distributed_dpram) with these options. port name in generated module port name in ebr block primitive des cription active state wraddress wad[23:0] write address rdaddress rad[3:0] read address rdclock read clock rising clock edge rdclocken read clock enable active high wrclock wck write clock rising clock edge wrclocken write clock enable active high we wre write enable active high data di[1:0] data input qrdo[1:0]data out wad[3:0] wck wre pfu wdo[1:0] di[1:0] rdo[1:0] rad[3:0]
9-48 memory usage guide lattice semiconductor latticee cp/ec and latti cexp devices figure 9-57. pfu based distributed dual port ra m timing waveform - without output registers (non- pipelined) data_0 data_1 data_2 invalid data wrclock data q wrclocken t sudata_ebr t hdata_ebr t coram_pfu t suce_ebr t hce_ebr rdaddress add_0 add_1 add_2 wraddress t suaddr_ebr t haddr_ebr we add_0 add_1 add_2 data_0 data_1 data_2
9-49 memory usage guide lattice semiconductor latticee cp/ec and latti cexp devices figure 9-58. pfu based distributed dual port ram timing waveform with output registers distributed rom (distr ibuted_rom) ?pfu based pfu-based distributed rom is also created using the 4-input lut (look-up table) available in the pfu. these luts can be cascaded to create larger distributed memory sizes. figure 9-59 shows the distributed single port ram module as generated by ipexpress. figure 9-59. distributed rom generated by ipexpress the generated module makes use of the 4-input lut available in the pfu. the basic distributed dual port ram primitive for the latticeecp/ec and latti cexp devices is shown in figure 9-60. data_0 data_1 invalid data data_0 wrclock data q wrclocken t sudata_pfu t hdata_pfu t suwren_pfu t hwren_pfu t coram_pfu data_1 add_0 add_1 rdaddress rdclock rdclocken t suce_pfu t hce_pfu add_0 add_1 wraddress t suaddr_pfu t haddr_pfu reset we t suwren_pfu t hwren_pfu pfu-based distributed rom address outclock outclocken reset q
9-50 memory usage guide lattice semiconductor latticee cp/ec and latti cexp devices figure 9-60. pfu-based distributed rom (sync_rom) for latticeecp/ec and latticexp devices ports such as out clock (outclock) and out clock enable (outclocken) are not available in the hardware primi- tive. these are generated by ipexpress when the user wants the to enable the output registers in the ipexpress configuration. the various ports and their definitions for the memory are included in table 9-16. the table lists the corresponding ports for the module generated by ipexpress and for the primitive. table 9-16. pfu-based distributed rom por t definitions users have the option of enabling the output registers for distributed rom (distributed_rom). figures 8-43 and 8- 44 show the internal timing waveforms for the distributed rom with these options. figure 9-61. pfu based rom timing waveform without output registers port name in generated module port name in the ebr block primitive description active state address ad[3:0] address outclock out clock rising clock edge outclocken out clock enable active high reset reset active high qdodata out pfu do ad[3:0] add_0 add_1 add_2 invalid data data_0 address q t suaddr_pfu t haddr_pfu t coram_pfu data_1 data_2
9-51 memory usage guide lattice semiconductor latticee cp/ec and latti cexp devices figure 9-62. pfu based rom timing waveform with output registers initializing memory in the ebr based rom or ram memory modes and the pfu based rom memory mode, it is possible to specify the power-on state of each bit in the memory array. each bit in the memory array can have one of two values: 0 or 1. initialization file format the initialization file is an ascii file, which a user can create or edit using any ascii editor. ipexpress supports three types of memory file formats: 1. binary file 2. hex file 3. addressed hex the file name for the memory initialization file is *.mem (.mem). each row depicts the value to be stored in a particular memory location. the number of c haracters (or the number of columns) represents the num- ber of bits for each address (or the width of the memory module). the initialization file is primarily used for configuring the roms. the ebr in ram mode can optionally use this ini- tialization file also to preload the memory contents. add_0 add_1 add_2 invalid data data_0 outclock address q outclocken t suaddr_pfu t haddr_pfu data_1 reset t coram_pfu
9-52 memory usage guide lattice semiconductor latticee cp/ec and latti cexp devices binary file the file is essentially a text file of 0s and 1s. the ro ws indicate the number of words and columns indicate the width of the memory. memory size 20x32 00100000010000000010000001000000 00000001000000010000000100000001 00000010000000100000001000000010 00000011000000110000001100000011 00000100000001000000010000000100 00000101000001010000010100000101 00000110000001100000011000000110 00000111000001110000011100000111 00001000010010000000100001001000 00001001010010010000100101001001 00001010010010100000101001001010 00001011010010110000101101001011 00001100000011000000110000001100 00001101001011010000110100101101 00001110001111100000111000111110 00001111001111110000111100111111 00010000000100000001000000010000 00010001000100010001000100010001 00010010000100100001001000010010 00010011000100110001001100010011 hex file the hex file is essentially a text file of hex characters arranged in a similar row-column arrangement. the number of rows in the file is same as the number of address locations, with each row indicating the content of the memory location. memory size 8x16 a001 0b03 1004 ce06 0007 040a 0017 02a4 addressed hex (orca) addressed hex consists of lines of address and data. each line starts with an address, followed by a colon, and any number of data. the format of memfile is address: data data data data ... where address and data are hexa- decimal numbers. -a0 : 03 f3 3e 4f -b2 : 3b 9f the first line puts 03 at address a0, f3 at address a1, 3e at address a2,and 4f at address a3. the second line puts 3b at address b2 and 9f at address b3. there is no limitation on the values of address and data . the value range is automatically checked based on the values of addr_width and data_width. if there is an error in an address or data value, an error message is printed. users need not specify data at all address locations. if data is not specified at a certain address, the data at that
9-53 memory usage guide lattice semiconductor latticee cp/ec and latti cexp devices location is initialized to 0. ipexpress makes memory in itialization possible both through the synthesis and simula- tion flows. technical support assistance hotline: 1-800-lattice (north america) +1-503-268-8001 (outside north america) e-mail: techsupport@latticesemi.com internet: www.latticesemi.com revision history date version change summary june 2004 01.0 initial release. july 2004 01.1 minor updates only. october 2004 01.2 minor updates only. february 2005 01.3 replace latticeec and latt iceecp latticeec, latticeecp and latticexp replace latticeecp/eclatticeec/ecp and latticexp replace latticeec or latticeecp latticeec, latticeecp or latticexp added hardware related information for the latticeec/ecp/xp devices update figure 8-4 figure 8-40 replace _ebr with _pfu in the figures timing parameters. april 2005 01.4 updated the trual dual port ram and module manager flow sections. october 2005 01.5 updated the block diagrams of module s generated by the module manager. added section for module manager flow example. added section for pmi flow. february 2006 01.6 removed the pmi support section april 2006 01.7 updated the initializing memory section october 2006 01.8 updated the fifo section. added dual port memory access notes in appendix a.
9-54 memory usage guide lattice semiconductor latticee cp/ec and latti cexp devices appendix a. attribute definitions data_width data width is associated with the ra m and fifo elements. the data_width attribute will define the number of bits in each word. it takes the values as defined in the ram size tables in each memory module. regmode regmode or the register mode attribute is used to enable pipelining in the memory. this attribute is associated with the ram and fifo elements. the regmode attribute takes the noreg or outreg mode parameter that disables and enables the output pipeline registers. resetmode the resetmode attribute allows users to select the mode of re set in the memory. this attribute is associated with the block ram elements. resetmode takes two parameters: sync and async. sync means that the memory reset is synchronized with th e clock. async means that the memory reset is asynch ronous to clock. csdecode csdecode or the chip select decode attributes are associated to block ram elements. cs, or chip select, is the port available in the ebr primitive that is useful when memory requires multiple ebr blocks cascaded. the cs sig- nal would form the msb for the address when multiple ebr blocks are cascaded. cs is a 3-bit bus, so it can cas- cade 8 memories easily. csdecode takes the following parameters: 000? 001? 010? 011? 100? 101? ?10, and 111. csdecode values determine the deco ding value of cs[2:0]. csdecode_w is chip select decode for write and csdecode_r is chip select decode for read for ps eudo dual port ram. csdecode_a and csdecode_b are used for true dual port ram elements and refer to the a and b ports. writemode the writemode attribute is associated with the block ram elements. it takes the normal, writethrough, and readbeforewrite mode parameters. in normal mode, the output data does not change or get updated, during the write operation. this mode is sup- ported for all data widths. in writethrough mode, the output data is updated with the input data during the write cycle. this mode is sup- ported for all data widths. in readbeforewrite mode, the output data port is updated with the existing data stored in the write address, during a write cycle. this mode is supported for x9, x18 and x36 data widths. writemode_a and writemode_b are used for dual port ram elements and refer to the a and b ports in case of a true dual port ram. for all modes (of the true dual port module), simultaneous read access from one port and write access from the other port to the same memory address is not recommended. the read data may be unknown in this situation. also, simultaneous write access to the same address fr om both ports is not recommended. (when this occurs, the data stored in the address becomes undetermined when one port tries to write a 'h' and the other tries to write a 'l'. ) it is recommended that the designer implements control logi c to identify this situatio n if it occurs and either: 1. implement status signals to flag the read data as possibly invalid, or 2. implement control logic to prevent the simultaneous access from both ports. gsr gsr or global set/ reset attribute is used to enab le or disable the global set/reset for ram element.
www.latticesemi.com 10-1 tn1050_03.2 february 2007 technical note tn1050 ? 2007 lattice semiconductor corp. all lattice trademarks, register ed trademarks, patents, and disclaimers are as listed at www .latticesemi.com/legal. all other brand or product names are trademarks or registered trademarks of their respective holders. the specifications and information herein are subject to change without notice. introduction latticeecp, latticeec and latticexp devices suppor t various double data rate (ddr) and single data rate (sdr) interfaces using the logic built into the programmable i/o (pio). sdr applications capture data on one edge of a clock while the ddr interfaces capture data on both the rising and falling ed ges of the clock, thus dou- bling the performance. this document will address in detail how to utilize th e capabilities of the latticeecp/ec and latticexp devices to implement both generic ddr and ddr memory interfaces. ddr sdram interfaces overview ddr sdram interfaces rely on the use of a data strobe signal, called dqs, for high-speed operation. when read- ing data from the external memory device, data coming into the device is edge aligned with respect to the dqs sig- nal. this dqs strobe signal needs to be phase shifted 90 degrees before fpga logic can sample the read data. when writing to a ddr sdram the memory controller (fpga) must shift the dqs by 90 degrees to center align with the data signals (dq). dq and dqs are bi-directional ports. the same two signals are used for both write and read operations. a clock signal is also provided to the memory. this clock is provided as a differential clock (clkp and clkn) to minimize duty cycle variations. the memory also uses these clock sign als to generate the dqs sig- nal during a read via a dll inside the memory. the skew between clkp or clkn and the sdram-generated dqs signal is specified in the ddr sdram data sheet. figures 10-1 and 10-2 show dq and dqs relationships for read and write cycles. during read, the dqs signal is low for some duration after it comes out of tristate. th is state is called preamble. the state when the dqs is low before it goes into tristate is the postamble state. this is the state after the last valid data transition. ddr sdram also require a data mask (dm) signals to mask data bits during write cycles. sdram interfaces typ- ically are implemented with x8, x16 and x32 bits for each dq s signal. note that the ratio of dqs to data bits is independent of th e overall width of the memo ry. an 8-bit interface will have one strobe signal. figure 10-1. typical ddr interface fpga (ddr memory controller) ddr memory dq<7:0> dqs dm address command control clk/clkn dq<7:0> dqs dm address command control clk/clkn dq<7:0> dqs dm address command control clk/clkn 8 x y z latticeecp/ec and latticexp ddr usage guide
latticeecp/ec and latticexp  lattice semiconductor ddr usage guide 10-2 figure 10-2. dq-dqs during read figure 10-3. dq-dqs during write implementing ddr memory interfac es with the latticeecp/ec devices this section describes how to implement the read and write sectio ns of a ddr memory interface. it also provides details of the dq and dqs grouping rules associated with the latticeecp/ec and latticexp devices. dqs grouping each dqs group generally consists of at least 10 i/os (1dqs, 8dq and 1dm) to implement a complete 8-bit ddr memory interface. in the latticeecp/ec devices each dqs signal will s pan across 16 i/os and in the latticexp devices the dqs will span 14 i/os. any 10 of these 16 i/ os can be used to implemen t an 8-bit ddr memory inter- face. in addition to the dqs grouping, the user must also assign one reference voltage vref1 for a given i/o bank. the tables below show the total number of dqs groups available per i/o bank for each device and package. dqs (at pin) preamble postamble dqs pin to reg and 90 degree phase shift dq (at pin) dqs (at reg) dq (at reg) dqs (at pin) dq (at pin)
latticeecp/ec and latticexp  lattice semiconductor ddr usage guide 10-3 table 10-1. number of dqs banks in the latticeecp/ec device table 10-2. number of dqs banks in the latticexp device package device total x8 dqs groups number of dqs groups per i/o bank 01234567 100-pin tqfp lfec1 3 1 1 0 0 1 0 0 0 lfec3 3 1 1 0 0 1 0 0 0 144-pin tqfp lfec1 6 1 1 0 1 1 1 1 0 lfec3 6 1 1 0 1 1 1 1 0 lfec6/lfecp6 6 1 1 0 1 1 1 1 0 208-pin tqfp lfec1 6 1 1 0 1 1 1 1 0 lfec3 8+2 1 1+1 1 11111+1 1 11 lfec6/lfecp6 8+2 1 1+1 1 11111+1 1 11 lfec10/lfecp10 8+2 1 1+1 1 11111+1 1 11 256-ball fpbga lfec3 10 2 1 1 1 1 2 1 1 lfec6/lfecp6 12 2 1 1 2 1 2 2 1 lfec10/lfecp10 12 2 1 1 2 1 2 2 1 lfec15/lfecp15 12 2 1 1 2 1 2 2 1 484-ball fpbga lfec6/lfecp6 14 2 2 1 2 2 2 2 1 lfec10/lfecp10 18 3 2 2 2 2 3 2 2 lfec15/lfecp15 20 3 3 2 2 3 3 2 2 lfec20/lfecp20 22 3 3 2 3 3 3 3 2 lfec33/lfecp33 22 3 3 2 3 3 3 3 2 672-ball fpbga lfec20/lfecp20 24 4 3 2 3 3 4 3 2 lfec33/lfecp33 30 4 4 3 4 4 4 4 3 1. 10 i/os (1 dqs + 8 dqs + bank vref1) can function as a ddr inte rface in which the fpga can have a dm output but not a dqs ali gned input (in the same ddr bank as the rest of the system). package device total x8 dqs groups number of dqs groups per i/o bank 01234567 100-pin tqfp lfxp3c/lfxp3e 2 0 0 0 0 0 1 0 1 lfxp6c lfxp6e 2 0 0 0 0 0 1 0 1 144-pin tqfp lfxp3c/lfxp3e 7 1 0 1 1 1 1 1 1 lfxp6c/lfxp6e 7 1 0 1 1 1 1 1 1 208-pin pqfp lfxp3c/lfxp3e 8 1 1 1 1 1 1 1 1 lfxp6c/lfxp6e 8 1 1 1 1 1 1 1 1 256-ball fpbga lfxp3c/lfxp3e 12 2 2 1 1 2 2 1 1 lfxp6c/lfxp6e 12 2 2 1 1 2 2 1 1 lfxp10c/lfxp10e 16 2 2 2 2 2 2 2 2 lfxp15c/lfxp15e 16 2 2 2 2 2 2 2 2 lfxp20c/lfxp20e 20 3 3 2 2 3 3 2 2 388-ball fpbga lfxp10c/lfxp10e 16 2 2 2 2 2 2 2 2 lfxp15c/lfxp15e 20 3 3 2 2 3 3 2 2 lfxp20c/lfxp20e 20 3 3 2 2 3 3 2 2 484-ball fpbga lfxp15c/lfxp15e 20 3 3 2 2 3 3 2 2 lfxp20c/lfxp20e 20 3 3 2 2 3 3 2 2 672-ball fpbga lfxp20c/lfxp20e 24 4 4 2 2 4 4 2 2
latticeecp/ec and latticexp  lattice semiconductor ddr usage guide 10-4 figure 10-4. dq-dqs grouping figure 10-4 shows a typical dq-dqs group for both the latticeecp/ec device and the latticexp device. the ninth i/o of this group of 16 i/os (for latticeecp/ec) or 14 i/os (for latticexp) is the dedicated dqs pin. all eight pads before the dqs and seven (for latticeecp/ec) or four (for latticexp) pads after the dqs are covered by this dqs bus span. the user can assign any eight of these i/o pads to be dq data pins. hence, to implement a 32-bit wide memory interface you would need to use four such dq-dqs groups. when not interfacing with the memory, the dedicated dqs pin can be used as a general purpose i/o. each of the dedicated dqs pin is internally connected to the dqs phase shift circuitry. the pinout information contained in the latticeecp/ec and latticexp device data sheets shows pin locations for the dqs pads. table 10-2 shows an extract from the latticeecp/ec data sheet. in this case, the dqs is marked as ldqs6 (l=left side, 6 =associated pfu row/column). since dqs is always the fifth true pad in the dq-dqs group, counting from low to high pfu row/column number, ldqs6 will cover pl2a to pl9b. followi ng this convention, there are eight pads before and seven pads after dqs for dq available following counter-clockwise for the left and bottom sides of the device, and following clockwise for the top and right sides of the device . the user can assign any eight of these pads to be dq data signals. the latticexp device follows the same method. table 10-3. ec20 pinout (from latticeecp/ec family data sheet) ball function bank lvds dual function 484 fpbga 672 fpbga pl2a 7 t vref2_7 d4 e3 pl2b 7 c vref1_7 e4 e4 pl3a 7 t c3 b1 pl3b 7 c b2 c1 pl4a 7 t e5 f3 pl4b 7 c f5 g3 pl5a 7 t d3 d2 pl5b 7 c c2 e2 pl6a 7 t ldqs6 f4 d1 pl6b 7 c g4 e1 pl7a 7 t e3 f2 pl7b 7 c d2 g2 pl8a 7 t lum0_pllt_in_a b1 f6 pl8b 7 c lum0_pllc_in_a c1 g6 pl9a 7 t lum0_pllt_fb_a f3 h4 pl9b 7 c lum0_pllc_fb_a e2 g4 pl11a 7 t g5 j4 dqs pad n* i/o pads (ninth i/o pad) dq, dm or vref1 *for latticeecp/ec: n = 16, for latticexp: n = 14.
latticeecp/ec and latticexp  lattice semiconductor ddr usage guide 10-5 ddr software primitives this section describes the software primitives that can be used to implement ddr interfaces and provides details about how to instantiate them in the software. the primitives described include: ?qsdll the dqs delay calibration dll dqsbuf the dqs delay function and the clock polarity selection logic ?nddrxb the ddr input and dqs to system clock transfer registers ?ddrxb the ddr output registers an hdl usage example for each of these primitives is listed in appendices b and c. dqsdll the dqsdll will generate a 90-degree pha se shift required for the dqs sig nal. this primitive will implement the on-chip dqsdll. only one dqsdll should be instantiated for all the ddr implementations on one half of the device. the clock input to this dll should be at the sa me frequency as the ddr in terface. the dll will generate the delay based on this clock frequency and the update co ntrol input to this block. the dll will updat e the dynamic delay control to the dqs delay block when this update control (uddcntl) input is asserted. figure 10-5 shows the primitive symbol. the active low signal on uddcntl updates the dqs phase alignm ent and should be initi- ated at the beginning of read cycles. figure 10-5. dqsdll symbol ta bl e 1 0 - 4 p r o v i d e s a d e s c r i p t i o n o f t h e p o r t s . table 10-4. dqsdll por ts dqsdll configuration attributes by default this dll will generate a 90-degree phase shif t for the dqs strobe based on the frequency of the input reference clock to the dll. the user can control the sensit ivity to jitter by using the lock_sensitivity attribute. this configuration bit can be programmed to be either high or low. pl11b 7 c h6 j5 pl12a 7 t g3 k4 port name i/o definition clk i system clk should be at frequency of the ddr interface, from the fpga core. rst i resets the dqsdll uddcntl i provides an update signal to the dll that will update the dynamic delay. when held low this signal will update the dqsdel. lock o indicates when the dll is in phase dqsdel o the digital delay generated by the dl l should be connected to the dqsbuf primitive. table 10-3. ec20 pinout (from latticeecp/ec family data sheet) ball function bank lvds dual function 484 fpbga 672 fpbga clk rst uddcntl lock dqsdel dqsdll
latticeecp/ec and latticexp  lattice semiconductor ddr usage guide 10-6 the dll lock detect circuit has two modes of operation controlled by the lock_sensitivity bit, which selects more or less sensitivity to jitter. if this dll is operated at or above 150 mhz, it is recommended that the lock_sensitivity bit be programmed ?igh?(more sensitive). for operation running at or under 100 mhz it is recommended that the bit be programmed low (more tolerant). for 133 mhz, the lock_sensitivity bit can go either way. dqsbuf this primitive implements the dqs delay and the dqs transition detector logic. figure 10-6 shows the dqsbufb function. the preamble detect signal is also generated within this primitive. figure 10-6. dqsbufb function figure 10-7 shows the primitive symbol and its ports. dqsi is the dqs signal from the memory. prmbdet is the preamble detect signal that is generated from the dqsi input. read and clk are user interface signals coming from the fpga logic. the dqsdll block sends digital control line dqsdel to this block. the dqs is delayed based on this input from the dqsdll. dqso is the delayed dqs and is connected to the clock input of the first set of ddr registers. figure 10-7. dqsbufb symbol ta bl e 1 0 - 5 p r o v i d e s a d e s c r i p t i o n o f t h e i / o p o r t s a s s o c i a t e d w i t h t h e d q s b u f b p r i m i t i ve . dqsdel dqs transition detect prmbdet dqsi dqso + - + - v ref - dv (dv ~ 170mv) read clk dqsbufb dqsdel v ref ddrclkpol dqsc prmbdet dqsi dqsbufb clk read dqso ddrclkpol dqsc prmbdet dqsdel
latticeecp/ec and latticexp  lattice semiconductor ddr usage guide 10-7 table 10-5. dqsbufb por ts notes: 1. the ddr clock polarity output from this block should be connected to the ddclkpol inputs of the input register blocks (iddrxb). read pulse generation the read signal to the dqsbufb block is internally ge nerated in the fpga core. th e read signal will go high when the read command to control the ddr sdram is in itially asserted. this should normally precede the dqs preamble by one cycle yet may overlap the trailing bits of a prior read cycle. the dqs detect circuitry of the lat- ticeecp/ec and latticexp devices require the falling edge of the read signal to be placed within the preamble stage. the preamble state of the dqs can be detected using the cas latency and the round trip delay for the signals between the fpga and the memory device. note that the internal fpga core generates the read pulse. the rise of the read pulse needs to coincide with the initial read command of the read burst and needs to go low before the preamble goes high. figure 10-8 shows the read pulse timing example with respect to the prmbdet signal. figure 10-8. read pulse generation port name i/o definition dqsi i dqs strobe signal from memory clk i system clk read i read generated from the fpga core dqsdel i dqs delay from the dqsdll primitive dqso o delayed dqs strobe signal, to the input capture register block dqsc o dqs strobe signal before delay, going to the fpga core logic ddrclkpol o ddr clock polarity signal prmbdet o preamble detect signal, going to the fpga core logic read dqs prmbdet first dqs transition preamble prior read cycle postamble postamble ok read fail read fail vth read ok
latticeecp/ec and latticexp  lattice semiconductor ddr usage guide 10-8 iddrxb this primitive will implement th e input register block. the software defaul ts to ce enabled unless otherwise speci- fied. the eclk input is used to connect to the dqs strobe coming from the dqs delay block (dqsbufb primi- tive). the sclk input should be connected to the system (f pga) clock. the sclk and ce inputs to this primitive will be used primarily to synchronize the ddr inputs. ddrcl kpol is an input from the dqs clock polarity tree. this signal is generated by the dqs transition detect circ uit in the hardware. figure 10-9 shows the primitive sym- bol and the i/o ports. figure 10-9. iddrxb symbol ta bl e 1 0 - 6 p r o v i d e s a d e s c r i p t i o n o f a l l i / o p o r t s a s s o c i a t e d w i t h t h e i d d r x b p r i m i t i ve . table 10-6. iddrxb por ts note: 1. the ddrclkpol input to iddrxb should be connected to the ddrclkpol output of dqsbufb. oddrxb the oddrxb primitive implements both th e write and the tristate functions. th is primitive is used to output ddr data and the dqs strobe to the memory. the ckp and ckn can also be generated using this primitive. all the ddr output tristate implementations are also implemented using the same primitive. figure 10-10 shows the oddrxb primitive symbol and its i/o ports. port name i/o definition diddr data eclk i the phase shifted dqs should be connected to this input lsr i reset sclk i system clk ce i clock enable ddrclkpol i ddr clock polarity signal qa o data at the positive edge of the clk qb o data at the negative edge of the clk iddrxb eclk lsr qa qb d sclk ce ddrclkpol
latticeecp/ec and latticexp  lattice semiconductor ddr usage guide 10-9 figure 10-10. oddrxb symbol ta bl e 1 0 - 7 p r o v i d e s a d e s c r i p t i o n o f a l l i / o p o r t s a s s o c i a t e d w i t h t h e o d d r x b p r i m i t i ve . table 10-7. oddrxb por ts notes : 1. lsr should be held low during ddr write operation. by default, the software will be implemented ce high and lsr low. 2. ddr output and tristate registers do not have ce support. lsr is available for the tristate ddrx mode (while reading). the lsr will default to set when used in the tristate mode. 3. ce and lsr support is available for the regular (non-ddr) output mode. 4. when asserting reset during ddr writ es, it is important to keep in mind that this would only reset the ffs and not the latches. memory read implementation the latticeecp/ec and latticexp devices contain a variety of features to simplify implementation of the read por- tion of a ddr interface: ?ll compensated dqs delay elements ?dr input registers ?utomatic dqs to system clock domain transfer circuitry the latticeecp/ec and latticexp device da ta sheets detail these circuit elements. three primitives in the lattice isplever design tools represent the capability of these three elements. the dqs- dll represents the dll used for ca libration. the iddrxb primitive repres ents the ddr input registers and clock domain transfer registers. finally, the dqsbufb represents the dqs delay block and the clock polarity control logic. these primitives are explained in more detail in the following sections of this document. figure 10-11 illus- trates how to hook these primitives together to implem ent the read portion of a ddr memory interface. the ddr software primitives section describes each of the primitives and its instantiation in more detail. appendices a and b provide example code to implement the complete i/o section of a memory interface within a latticeecp/ec or lat- ticexp device. port name i/o definition clk i system clk da i data at the positive edge of the clock db i data at the negative edge of the clock lsr i reset qiddr data to the memory q oddrxb clk da db lsr
latticeecp/ec and latticexp  lattice semiconductor ddr usage guide 10-10 figure 10-11. software primitive implementation for memory read read timing waveforms figure 10-12 and figure 10-13 show read data transfer for two cases based on the results of the dqs transition detector logic. this circuitry decides whether or not to in vert the phase of fpga system clk to the synchronization registers based on the relative phases of prmbdet and clk. ?ase 1 if clk = 0 on the 1st prmbdet transition, then ddrclkpol = 0, hence no inversion required. ( figure 10-12 ) ?ase 2 if clk=1 on the 1st prmbdet then ddrclkpol = 1, the system clock (clk) needs to be inverted before it is used for synchronization. ( figure 10-13 ) the signals a, b and c illustrate the read cycle half clock transfer at differen t stages of iddrx re gisters. the first stage of the register captures data on the positive edge as shown by signal a and negative edge as shown by sig- nal b. the data stream a goes through an additional half clock cycle transfers shown by signal c. phase aligned data streams b and c are presented to the next stage registers clocked by the fpga clk 6 ddrclkpol dqs reset clk uddcntl lock dqsdll dqsi clk read dqsdel read dq dqso sclk eclk ddrclkpol d lsr ce qa qb rst uddcntl dqsdel datain_p datain_n dqsc prmbdet lock dqsbufb iddrxb ce dqsc prmbdet
latticeecp/ec and latticexp  lattice semiconductor ddr usage guide 10-11 figure 10-12. read data transfer when ddrclkpol=0 dqs at pin dq at pin dqs at iol fpga clk ddrclkpol= 0 prmbdet clk to sync io registers a b c p0 n0 n1 p1 p0 n0 p1 n1 p0 p1 n0 n1 p0 p1 p0 n0 datain_p datain_n dq at iol notes - (1) ddr memory sends dq aligned to dqs strobe. (2) the dqs strobe is delayed by 90 degree using the dedicated dqs logic. (3) dq is now center aligned to dqs strobe. (4) prmbdet is the preamble detect signal generated using the dqsbufb primitive. this is used to generate the ddrclkpol signal. (5) the first set of io registers a and b, capture data on the positive edge and negative edge of dqs. (6) io register c transfers data so that both data are now aligned to negative edge of dqs. (7) ddclkpol signal generated will determine if the clk going into the synchronization registers need to be inverted. in this case, the ddrclkpol=0 as the clk is low at the 1 st rising edge of prmbdet. (8) the io synchronization registers capture data at on positive edge of the fpga clk.
latticeecp/ec and latticexp  lattice semiconductor ddr usage guide 10-12 figure 10-13. read data transfer when ddrclkpol=1 data read critical path data in the second stage ddr registers can be registered either on the positive edge or on the falling edge of fpga clock depending on the ddrclkpol signal. in order to ensure that the data transferred to the fpga core registers is aligned to the rising edge of system clk, this path should be constrained with a half clock transfer. this half clock transfer can be forced in the software by assigning a multicycle constraint (multicycle of 0.5 x) on all the data paths to the first pfu register. dqs at pin dq at pin dqs at iol prmbdet a b c p0 n0 n1 p1 p0 n0 p1 n1 p0 p1 n0 n1 p0 p1 dq at iol fpga clk ddrclkpol=1 p0 n0 clk to sync io registers datain_p datain_n notes - (1) ddr memory sends dq aligned to dqs strobe. (2) the dqs strobe is delayed by 90 degree using the dedicated dqs logic. (3) dq is now center aligned to dqs strobe. (4) prmbdet is the preamble detect signal generated using the dqsbufb primitive. this is used to generate the ddrclkpol signal. (5) the first set of io registers a and b, capture data on the positive edge and negative edge of dqs. (6) io register c transfers data so that both data are now aligned to negative edge of dqs. (7) ddclkpol signal generated will determine if the clk going into the synchronization registers need to be inverted. in this case, the ddrclkpol=1 as the clk is high at the 1 st rising edge of prmbdet. (8) the io synchronization registers capture data at on negative edge of the fpga clk.
latticeecp/ec and latticexp  lattice semiconductor ddr usage guide 10-13 dqs postamble at the end of a read cycle, the ddr sdram device executes the read cycle postamble and then immediately tristates both the dq and dqs output drivers. since neither the memory controller (fpga) nor the ddr sdram device are driving dq or dqs at that time, these signals float to a level determined by the off-chip termination resistors. while these signals are floating, noise on the dqs strobe may be interpreted as a valid strobe signal by the fpga input buffer. this can cause the last read data captured in the iol input ddr registers to be overwrit- ten before the data has been transferred to the free running resynchronization registers inside the fpga. figure 10-14. postamble effect on read latticeecp/ec and latticexp devices have extra dedicated logic in the in the dqs de lay block that will prevent this postamble problem. the dqs postamble logic is au tomatically implemented when the user instantiates the dqs delay logic (dqsbufb software primitive) in a design. this postamble solution was implemen ted in all the devices of the lattice ecp/ec and latticexp families except the lfec20/lfecp20 device. for this device, it is recomm ended that the user issue an extra read command to assure correct data has been transferred to the synchronization registers. the circumstances under which the extended r ead cycle is issued are given in table 10-8. table 10-8. ddr read postamble current command next command action lost cycles read (row x, bank y) read (row x, bank y) none. none read (any address) nop extend the current read command. 1 3 read (row x, bank y) read (row n, bank y) extend the current read to (row x, bank y) consecutive to current command 3 read (row x, bank y) read (row x, bank n) if the row x, bank n was open, do nothing. else, extend the current read to row x, bank y 3 read (any address) write/lmr extend the current read command. 3 1. current read is extended one or more additional clock cycles. p0 p1 n0 p0 dq at iol dqs at pin dq at pin dqs at iol p0 n0 n1 p1 n1 p0 n0 n1 p1 p1 clk at synce reg datain_p datain_n a b c p0 n0
latticeecp/ec and latticexp  lattice semiconductor ddr usage guide 10-14 figure 10-15. postamble solution with extra read command memory write implementation to i m p l e m e n t t h e w r i t e p o r t i o n o f a d dr memory interface, two streams of si ngle data rate data must be multi- plexed together with data transitioning on both edges of the clock. in addition, during a write cycle, dqs must arrive at the memory pins center-aligned with data, dq. along with the strobe and data this portion of the interface pro- vides the clkp, clkn address/command and data mask (dm) signals to the memory. latticeecp/ec and latticexp devices co ntain ddr output and tri-state regist ers along with plls that allow the easy implementation of the write portion of the ddr memory in terfaces. the ddr output registers can be accessed in the design tools via the oddrxb primitive. all ddr output signals (?ddr, cmd? dqs, dq, dm) are in itially aligned to the rising edge of clk inside the fpga core. these signals are used for the entire ddr writ e interface or the controls of ddr read interface. the relative phase of the signals may be adjusted in the iol logic before departing the fpga. the adjustments are shown in figure 16 the adjustments are as follows: the pll is used to generate a 90 degr ee phase shifted clock. this 90 degr ee phase shifted clock will be used to generate dqs and the differential clocks going to the memory. the clkp needs to be centered relative to the addr,cmd signal, which is an sdr signal. this is accomplished by inverting the clkp signal relative to the plls 90 degree phase shifted clk. the ddr clock can be generated by assigning 0 to the da input and 1 to the db inputs of the oddrxb primi- tive as shown in figure 10-16. this is then fed into a sstl25 differential output buffer to generate clkp and clkn differential clocks. generating the clkn in this m anner would prevent any skew between the two signals. the ddr interface specification for t dss and t dsh parameters, defined as dqs falling to clkp rising setup and hold times must be met. this is met by making clkp and dqs identical in p hase. dqs is inverted to match clkp (= clk + 270). this is accomplished by routing the positive dqs data in core logic to db, and negative dqs data in core logic to da inpu ts of the oddrxb primitive. p0 p1 dq at iol dqs at pin dq at pin dqs at iol p0 n0 n1 p1 p0 n0 n1 p1 clk at synce reg a b c n0 n1 p0 p1 datain_p datain_n p0 n0 p1 n1
latticeecp/ec and latticexp  lattice semiconductor ddr usage guide 10-15 internally the dqs and addr/cmd signa ls are clocked using the primary fp ga clock. therefore, the user will need to do a 1/4 (one-quarter) clock transfer from the core logic to the ddr registers. timing can be hard to meet, so it is recommended that the user first register these signals with the inverted clock, so that the transfer from the core logic to i/o registers will only require a 1/2 (half) clock transfer. the data dq and dm needs to be delayed by 90 as it le aves the fpga. this is to center the data and data mask relative to the dqs when it reaches the ddr memory. this can be accomplished by inverting the clk to the dq and dm data. the dm signal is generated using the same clock as the dq data pin. the memory masks the dq signals if the dm pins are driven high. the tristate control for the data output can also be implemented using the oddrxb primitive. figure 10-16 illustrates how to hook up the oddrxb primitives a nd the pll. the ddr software primitives section describes each of the primitives and its instantiation in more detail. appendix a and appendix b provide example code for implementing the complete i/o section of a memory interface for a latticeecp/ec or latticexp device. figure 10-16. software primitive implementation for memory write pll clk dqs dq core logic clk clkn clk + 90 pio logic ddr memory device dataout_p dataout_n clkp ? dm oddrxb clk da db q q lsr q oddrxb clk da db q lsr oddrxb clk da db q lsr oddrxb clk da db q lsr oddrxb clk da db q lsr oddrxb clk da db q lsr ? datatri_p datatri_n dqstri_p dqstri_n (from user logic) (from user logic) addr/ cmd d ? ? d q d q d q d q d q
latticeecp/ec and latticexp  lattice semiconductor ddr usage guide 10-16 write timing waveforms figure 10-17 shows ddr write side data transfer timing for the dq data pad and the dqs strobe pad. when writ- ing to the ddr memory device, the dm (data mask) and the addr/ cmd (address and command) signals are also sent to the memory device along with the data and strobe signals. figure 10-17. ddr write da ta transfer for dq data design rules/guidelines listed below are some rules and guidelines to keep in mind when implementing ddr memory interfaces in the lat- ticeecp/ec and latticexp devices. ?he latticeecp/ec and latticexp devices have dedica ted dq-dqs banks. please refer to the logical sig - nal connections of the groups in the latticeecp/ec and latticexp data sheets before locking these pins. ?here are two dqsdlls on the device, one for the top half and one for the bottom half. hence, only one dqsdll primitive should be instantiated for each half of the device. since there is only one dqsdll on each half of the device, all the ddr memory interfaces on that half of the device should run at the same fre - quency. each dqsdll will generate 90 degree digital de lay bits for all the dqs delay blocks on that half of the device based on the reference clock input to the dll. notes - (1) dataout_p and dataout_n are inputs to the ddr output registers. (2) dqs is generated at 270 degree phase of clk. (3) clkp is generated simular to dqs and clkn is the inverted clkp. (4) dq is generated at 180 degree phase of clk. (5) dq is center aligned with the dqs strobe signal when it reaches the memory. dataout_n dataout_p p0 p1 p2 n0 n1 n2 clk dqs p0 n0 n1 p2 n2 p1 clk +270 clk +180 clkp clkn dq
latticeecp/ec and latticexp  lattice semiconductor ddr usage guide 10-17 the ddr sdram interface supports the sstl25 i/o standard, therefore the interface pins should be assigned as sstl25 i/o type. ?hen implementing a ddr interface, the vref1 of the ba nk is used to provide the reference voltage for the interface pins. ?ppendix f shows ddr400 implementation results of the latticeec advanced evaluation board. qdr ii interface qdr ii sram is a new memory technology defined by a number of leading memory vendors for high-performance and high-bandwidth communication applications. qdr is a synchronous pipelined burst sram with two separate unidirectional data buses dedicated for read and write operations running at double data rate. both the qdr ii read and write interfaces use hstl 1.8v i/o standard. a qdr ii memory controller can be easily implemented using the latticeecp/ec and latticexp devices by taking advantage of the ddr i/o registers. for latticeecp/ec and latticexp devices, oddrxb primitives are used on the qdr outputs and pfu registers are used on the qdr inputs to implement the ddr interface. to see the details of this implementation refer to lattice reference design rd1019, qdr memory controller on the lattice web site at www.latticesemi.com . fcram (fast cycle random access memory) interface fcram is a ddr-type dram, which perfor ms data output at both the rising and the falling edges of the clock. fcram devices operate at a core voltage of 2.5v with sstl class ii i/o. it has enhanced both the core and peripheral logic of the sdram. in fcram the address and command signals are synchronized with the clock input, and the data pins are synchronized with the dqs signal. data output ta kes place at both the rising and falling edges of the dqs. dqs is in phase with the clock input of the device. the ddr sdram and ddr fcram control- ler will have different pin outs. latticeecp/ec and latticexp devices can implement an fcram interface using the ded icated dqs logic, input ddr registers and output ddr registers as described in th e implementing memory interfaces section of this docu- ment. generation of address and cont rol signals for fcram are different compared to the ddr sdram devices. please refer to the fcram data sheets to see detailed specifications. toshiba, inc. and fujitsu, inc. offer fcram devices in 256mb densities. they are available in x8 or x16 configurations. generic high speed ddr implementation in addition to the ddr memory interfac e, users can use the i/o logic regist ers to implement a high speed ddr interface. ddr data write operations can be implemented using the ddr output registers similar to the memory interface implementation us ing the oddrxb primitives. on the input side, the read interface can be implemented using the core logic pfu registers. the pfu register next to the i/o cells can be used to de-m ux the ddr data to single data rate data. this method of implementing ddr can run at 300 mhz when accompanied by proper preferences in the software. the hdl and the preferences to implement this ddr interface are listed in appendix d of this document. board design guidelines the most common challenge associated with implementing ddr memory interfaces is the board design and lay- out. users must strictly follow the guidelines recommended by memory device vendors. some common recommendations include matching trace lengths of interface signals to avoid skew, proper dq- dqs signal grouping, proper termination of the sstl2 i/o standard, proper vref and vtt generation decoupling and proper pcb routing.
latticeecp/ec and latticexp  lattice semiconductor ddr usage guide 10-18 some reference documents that discuss board layout guidelines: www.idt.com , idt, pcb design for double data rate memory. www.motorola.com , an2582, hardware and layout design considerations for ddr interfaces. www.micron.com , tn4607, ddr 333 design guide for two dimm systems references www.jedec.org jedec standard 79, double data rate (ddr) sdram specification www.micron.com ddr sdram data sheets www.infinion.com ddr sdram data sheets www.samsung.com ddr sdram data sheets www.latticesemi.com rd1019 qdr memory controller reference design for latticeecp/ec devices www.toshiba.com ddr fcram data sheet www.fujitsu.com ddr fcram data sheet www.latticesemi.com latticeec advanced evaluation board users guide www.latticesemi.com ddr sdram controller (pipelined vers ion for latticeecp/ec devices) user's guide technical support assistance hotline: 1-800-lattice (north america) +1-503-268-8001 (outside north america) e-mail: techsupport@latticesemi.com internet: www.latticesemi.com revision history date version change summary previous lattice releases. february 2007 03.2 updated generic high speed ddr implementation section. updated appendix d.
latticeecp/ec and latticexp  lattice semiconductor ddr usage guide 10-19 appendix a. using ipexpress to generate ddr modules the input and output ddr module can be generated using ipexpress. the i/o section under the architecture mod- ules provides two options to the user: 1. ddr_generic ?the option allows generation of a generic ddr interface, which in the case of lat - ticeecp/ec and latticexp devices, is only the output side ddr. the input side for a generic ddr inter - face must be implemented using pfu registers. appendix d provides the example code for the input side generic ddr. 2. ddr_mem ?this option allows th e user to generate a complete ddr memory interface. it will generate both the read and write side interface required to interface with the memory. ipexpress generates only the modules that are implemented within the iologic. any logic required in the fpga core to complete the memory interface must be implemented by the user. figure 10-18. ipexpress i/o section ddr generic ddr generic will generate the output dd r (oddrxb) primitives for a given bus width. the user has the option to enable or disable tristate control to the output ddr registers. figure 10-1 9 shows the ddr generic views of ipex- press.
latticeecp/ec and latticexp  lattice semiconductor ddr usage guide 10-20 figure 10-19. ddr generic configuration options ddr memory interface this ipexpress option generates both read and write interfaces using all ddr primitives for a given bus width. figure 10-20 shows the options under this section. figure 10-20. confi guration options for ddr memory interface
latticeecp/ec and latticexp  lattice semiconductor ddr usage guide 10-21 appendix b. verilog example fo r ddr input and output modules module ddr_mem (dq, dqs, clk, reset, uddcntl, read, datain_p, datain_n, dqsc, prmbdet, lock, ddrclkpol, clk90, dqstri_p, dqstri_n, datatri_p, datatri_n, dataout_p, dataout_n, ddrclk); inout [7:0] dq/* synthesis io_type="sstl25_ii"*/; inout dqs/* synthesis io_type="sstl25_ii"*/; --clk is the core clock and clk90 is the 90 degree phase shifted clock coming from the pll input clk, clk90; input reset, uddcntl, read; input [7:0] dataout_p, dataout_n; input [7:0] datatri_p, datatri_n; input dqstri_p, dqstri_n; output [7:0] datain_p; output[7:0] datain_n; output dqsc, prmbdet, lock, ddrclkpol; output ddrclk /* synthesis io_type="sstl25d_ii"*/ ; wire vcc_net,gnd_net; wire dqsbuf, dqsdel, clk, ddrclkpol_sig; wire [7:0] ddrin, ddrout, tridata; wire dqsout, tridqs, dqsin, ddrclk; assign vcc_net = 1'b1; assign gnd_net = 1'b0; assign ddrclkpol = ddrclkpol_sig; //-------bidirectional buffers ------------------------------------------------------ bb bidiinst0 (.i(ddrout[0]), .t(tridata[0]), .o(ddrin[0]), .b(dq[0])); bb bidiinst1 (.i(ddrout[1]), .t(tridata[1]), .o(ddrin[1]), .b(dq[1])); bb bidiinst2 (.i(ddrout[2]), .t(tridata[2]), .o(ddrin[2]), .b(dq[2])); bb bidiinst3 (.i(ddrout[3]), .t(tridata[3]), .o(ddrin[3]), .b(dq[3])); bb bidiinst4 (.i(ddrout[4]), .t(tridata[4]), .o(ddrin[4]), .b(dq[4])); bb bidiinst5 (.i(ddrout[5]), .t(tridata[5]), .o(ddrin[5]), .b(dq[5])); bb bidiinst6 (.i(ddrout[6]), .t(tridata[6]), .o(ddrin[6]), .b(dq[6])); bb bidiinst7 (.i(ddrout[7]), .t(tridata[7]), .o(ddrin[7]), .b(dq[7])); //bidirectional strobe, dqs bb bidiinst8(.i(dqsout), .t(tridqs), .o(dqsin), .b(dqs)); //------------------------------------------------------------------------------------ //-----------ddr input --------------------------------------------------------------- dqsbufb u8 (.dqsi(dqsin), .clk(clk), .read(read), .dqsdel(dqsdel), .ddrclk- pol(ddrclkpol_sig), .dqsc(dqsc), .prmbdet(prmbdet), .dqso(dqsbuf)); dqsdll u9 (.clk(clk), .uddcntl(uddcntl), .rst(reset), .dqsdel(dqsdel), .lock(lock)); iddrxb ul0 (.d(ddrin[0]), .eclk(dqsbuf), .sclk(clk), .ce(vcc_net), .ddrclk- pol(ddrclkpol_sig), .lsr(reset), .qa(datain_p[0]), .qb(datain_n[0]));
latticeecp/ec and latticexp  lattice semiconductor ddr usage guide 10-22 iddrxb ul1 (.d(ddrin[1]), .eclk(dqsbuf), .sclk(clk), .ce(vcc_net), .ddrclk- pol(ddrclkpol_sig), .lsr(reset), .qa(datain_p[1]), .qb(datain_n[1])); iddrxb ul2 (.d(ddrin[2]), .eclk(dqsbuf), .sclk(clk), .ce(vcc_net), .ddrclk- pol(ddrclkpol_sig), .lsr(reset), .qa(datain_p[2]), .qb(datain_n[2])); iddrxb ul3 (.d(ddrin[3]), .eclk(dqsbuf), .sclk(clk), .ce(vcc_net), .ddrclk- pol(ddrclkpol_sig), .lsr(reset), .qa(datain_p[3]), .qb(datain_n[3])); iddrxb ul4 (.d(ddrin[4]), .eclk(dqsbuf), .sclk(clk), .ce(vcc_net), .ddrclk- pol(ddrclkpol_sig), .lsr(reset), .qa(datain_p[4]), .qb(datain_n[4])); iddrxb ul5 (.d(ddrin[5]), .eclk(dqsbuf), .sclk(clk), .ce(vcc_net), .ddrclk- pol(ddrclkpol_sig), .lsr(reset), .qa(datain_p[5]), .qb(datain_n[5])); iddrxb ul6 (.d(ddrin[6]), .eclk(dqsbuf), .sclk(clk), .ce(vcc_net), .ddrclk- pol(ddrclkpol_sig), .lsr(reset), .qa(datain_p[6]), .qb(datain_n[6])); iddrxb ul7 (.d(ddrin[7]), .eclk(dqsbuf), .sclk(clk), .ce(vcc_net), .ddrclk- pol(ddrclkpol_sig), .lsr(reset), .qa(datain_p[7]), .qb(datain_n[7])); //---------------------------------------------------------------------------------------- //----tristate instantiations------------------------------------------------------------- // ddr trisate for data, dq oddrxb t0 (.da(datatri_p[0]), .db(datatri_n[0]), .lsr(reset), .clk(~clk), .q(tridata[0])); oddrxb t1 (.da(datatri_p[1]), .db(datatri_n[1]), .lsr(reset), .clk(~clk), .q(tridata[1])); oddrxb t2 (.da(datatri_p[2]), .db(datatri_n[2]), .lsr(reset), .clk(~clk), .q(tridata[2])); oddrxb t3 (.da(datatri_p[3]), .db(datatri_n[3]), .lsr(reset), .clk(~clk), .q(tridata[3])); oddrxb t4 (.da(datatri_p[4]), .db(datatri_n[4]), .lsr(reset), .clk(~clk), .q(tridata[4])); oddrxb t5 (.da(datatri_p[5]), .db(datatri_n[5]), .lsr(reset), .clk(~clk), .q(tridata[5])); oddrxb t6 (.da(datatri_p[6]), .db(datatri_n[6]), .lsr(reset), .clk(~clk), .q(tridata[6])); oddrxb t7 (.da(datatri_p[7]), .db(datatri_n[7]), .lsr(reset), .clk(~clk), .q(tridata[7])); // ddr trisate for strobe, dqs oddrxb t8 (.da(dqstri_p), .db(dqstri_n), .lsr(reset), .clk(clk90), .q(tridqs)); //----------------------------------------------------------------------------------------- - //-----------dq output--------------------------------------------------------------------- - oddrxb o0 (.da(dataout_p[0]), .db(dataout_n[0]), .lsr(reset), .clk(~clk), .q(ddrout[0])); oddrxb o1 (.da(dataout_p[1]), .db(dataout_n[1]), .lsr(reset), .clk(~clk), .q(ddrout[1])); oddrxb o2 (.da(dataout_p[2]), .db(dataout_n[2]), .lsr(reset), .clk(~clk), .q(ddrout[2])); oddrxb o3 (.da(dataout_p[3]), .db(dataout_n[3]), .lsr(reset), .clk(~clk), .q(ddrout[3])); oddrxb o4 (.da(dataout_p[4]), .db(dataout_n[4]), .lsr(reset), .clk(~clk), .q(ddrout[4])); oddrxb o5 (.da(dataout_p[5]), .db(dataout_n[5]), .lsr(reset), .clk(~clk), .q(ddrout[5])); oddrxb o6 (.da(dataout_p[6]), .db(dataout_n[6]), .lsr(reset), .clk(~clk), .q(ddrout[6])); oddrxb o7 (.da(dataout_p[7]), .db(dataout_n[7]), .lsr(reset), .clk(~clk), .q(ddrout[7]));
latticeecp/ec and latticexp  lattice semiconductor ddr usage guide 10-23 //----------------------------------------------------------------------------------------- -- //--------------- dqs output--------------------------------------------------------------- -- oddrxb o8 (.da(gnd_net), .db(vcc_net), .lsr(reset), .clk(clk90), .q(dqsout)); //----------------------------------------------------------------------------------------- -- //--------------- clkoutp and clkoutn generation------------------------------------------- -- oddrxb o9 (.da(gnd_net), .db(vcc_net), .lsr(reset), .clk(clk90), .q(ddrclk)); //----------------------------------------------------------------------------------------- -- endmodule
latticeecp/ec and latticexp  lattice semiconductor ddr usage guide 10-24 appendix c. vhdl example for ddr input and output modules library ieee; use ieee.std_logic_1164.all; library ec; use ec.components.all; entity ddr_mem is port( dq : inout std_logic_vector(7 downto 0 ); dqs : inout std_logic; clk : in std_logic; -- core clock clk90 : in std_logic; -- 90 degree phase shifted clock from the pll reset : in std_logic; uddcntl : in std_logic; read : in std_logic; dataout_p : in std_logic_vector(7 downto 0); dataout_n : in std_logic_vector(7 downto 0); datatri_p : in std_logic_vector(7 downto 0); datatri_n : in std_logic_vector(7 downto 0); dqstri_p : in std_logic; dqstri_n : in std_logic; ddrclk : out std_logic; datain_p : out std_logic_vector(7 downto 0); datain_n : out std_logic_vector(7 downto 0); dqsc : out std_logic; prmbdet : out std_logic; lock : out std_logic; ddrclkpol : out std_logic); --*****ddr interface signals assigned sstl25 io standard ************* attribute io_type : string; attribute io_type of ddrclk : signal is "sstl25d_ii"; attribute io_type of dq : signal is "sstl25_ii"; attribute io_type of dqs : signal is "sstl25_ii"; end ddr_mem; architecture structure of ddr_mem is --*****ddr input register********************************************* component iddrxb port( d : in std_logic; eclk : in std_logic; sclk : in std_logic; ce : in std_logic; lsr : in std_logic; ddrclkpol : in std_logic; qa : out std_logic; qb : out std_logic); end component;
latticeecp/ec and latticexp  lattice semiconductor ddr usage guide 10-25 --*******ddr output register ******************************************* component oddrxb port( clk : in std_logic; da : in std_logic; db : in std_logic; lsr : in std_logic; q : out std_logic); end component; --*******bidirectional buffer******************************************** component bb port( i : in std_logic; t : in std_logic; o : out std_logic; b : inout std_logic); end component; --******dqs dll component************************************************* component dqsdll port( clk : in std_logic; rst : in std_logic; uddcntl : in std_logic; lock : out std_logic; dqsdel : out std_logic); end component; --****** dqs delay block*************************************************** component dqsbufb port( dqsi : in std_logic; clk : in std_logic; read : in std_logic; dqsdel : in std_logic; dqso : out std_logic; ddrclkpol : out std_logic; dqsc : out std_logic; prmbdet : out std_logic); end component; signal dqsbuf : std_logic; signal dqsdel : std_logic; signal ddrclkpol_sig : std_logic; signal ddrin : std_logic_vector(7 downto 0 ); signal ddrout : std_logic_vector(7 downto 0 ); signal tridata : std_logic_vector(7 downto 0 ); signal dqsout : std_logic; signal tridqs : std_logic; signal dqsin : std_logic; signal vcc_net : std_logic; signal gnd_net : std_logic;
latticeecp/ec and latticexp  lattice semiconductor ddr usage guide 10-26 signal clkinv : std_logic; signal ddrclk : std_logic; begin vcc_net <= '1'; gnd_net <= '0'; clkinv<= not clk; ddrclkpol<=ddrclkpol_sig; --*************bidirectional buffers***************************************************** bidiinst0 : bb port map( i => ddrout(0),t => tridata(0),o => ddrin(0),b => dq(0)); bidiinst1 : bb port map( i => ddrout(1),t => tridata(1),o => ddrin(1),b => dq(1)); bidiinst2 : bb port map( i => ddrout(2),t => tridata(2),o => ddrin(2),b => dq(2)); bidiinst3 : bb port map( i => ddrout(3),t => tridata(3),o => ddrin(3),b => dq(3)); bidiinst4 : bb port map( i => ddrout(4),t => tridata(4),o => ddrin(4),b => dq(4)); bidiinst5 : bb port map( i => ddrout(5),t => tridata(5),o => ddrin(5),b => dq(5)); bidiinst6 : bb port map( i => ddrout(6),t => tridata(6),o => ddrin(6),b => dq(6)); bidiinst7 : bb port map( i => ddrout(7),t => tridata(7),o => ddrin(7),b => dq(7)); bidiinst8 : bb port map( i=> dqsout, t=> tridqs, o=> dqsin, b=> dqs); --*************************************************************************************** --*************ddrinput****************************************************************** --dqsdll, generates the dqs delay i0: dqsdll port map(clk=>clk, uddcntl=> uddcntl, rst=> reset, dqsdel=> dqsdel, lock => lock); i1: dqsbufb port map( dqsi=> dqsin, clk=>clk, read=> read, dqsdel=> dqsdel, ddrclkpol=> ddrclkpol_sig, dqsc=> dqsc, prmbdet=> prmbdet, dqso=> dqsbuf); --ddr input primitives i2 : iddrxb port map(d=> ddrin(0), eclk=> dqsbuf, sclk => clk, ce => vcc_net, ddrclkpol=> ddrclkpol_sig, lsr => reset, qa =>datain_p(0), qb => datain_n(0)); i3 : iddrxb port map(d=> ddrin(1), eclk=> dqsbuf, sclk => clk, ce => vcc_net, ddrclkpol=> ddrclkpol_sig, lsr => reset, qa =>datain_p(1), qb => datain_n(1)); i4 : iddrxb port map(d=> ddrin(2), eclk=> dqsbuf, sclk => clk, ce => vcc_net, ddrclkpol=> ddrclkpol_sig, lsr => reset, qa =>datain_p(2), qb => datain_n(2)); i5 : iddrxb port map(d=> ddrin(3), eclk=> dqsbuf, sclk => clk, ce => vcc_net, ddrclkpol=> ddrclkpol_sig, lsr => reset, qa =>datain_p(3), qb => datain_n(3)); i6 : iddrxb port map(d=> ddrin(4), eclk=> dqsbuf, sclk => clk, ce => vcc_net, ddrclkpol=> ddrclkpol_sig, lsr => reset, qa =>datain_p(4), qb => datain_n(4)); i7 : iddrxb port map(d=> ddrin(5), eclk=> dqsbuf, sclk => clk, ce => vcc_net, ddrclkpol=> ddrclkpol_sig, lsr => reset, qa =>datain_p(5), qb => datain_n(5));
latticeecp/ec and latticexp  lattice semiconductor ddr usage guide 10-27 i8 : iddrxb port map(d=> ddrin(6), eclk=> dqsbuf, sclk => clk, ce => vcc_net, ddrclkpol=> ddrclkpol_sig, lsr => reset, qa =>datain_p(6), qb => datain_n(6)); i9 : iddrxb port map(d=> ddrin(7), eclk=> dqsbuf, sclk => clk, ce => vcc_net, ddrclkpol=> ddrclkpol_sig, lsr => reset, qa =>datain_p(7), qb => datain_n(7)); --*************************************************************************************** --*****tristate instantiations*********************************************************** -- ddr trisate for data, dq t0 : oddrxb port map( da => datatri_p(0), db => datatri_n(0), lsr => reset, clk => clkinv, q => tridata(0)); t1 : oddrxb port map( da => datatri_p(1), db => datatri_n(1), lsr => reset, clk => clkinv, q => tridata(1)); t2 : oddrxb port map( da=> datatri_p(2), db => datatri_n(2), lsr => reset, clk => clkinv, q => tridata(2)); t3 : oddrxb port map( da => datatri_p(3), db => datatri_n(3), lsr => reset, clk => clkinv, q => tridata(3)); t4 : oddrxb port map( da => datatri_p(4), db => datatri_n(4), lsr => reset, clk => clkinv, q => tridata(4)); t5 : oddrxb port map( da => datatri_p(5), db => datatri_n(5), lsr => reset, clk => clkinv, q => tridata(5)); t6 : oddrxb port map( da => datatri_p(6), db => datatri_n(6), lsr => reset, clk => clkinv, q => tridata(6)); t7 : oddrxb port map( da => datatri_p(7), db => datatri_n(7), lsr => reset, clk => clkinv, q => tridata(7)); --ddr trisate for strobe, dqs t8: oddrxb port map( da =>dqstri_p, db=> dqstri_n, lsr=> reset, clk=> clk90, q => tridqs); --**************************************************************************************** --***************ddr output*************************************************************** --dq output o0 : oddrxb port map( da => dataout_p(0), db => dataout_n(0), lsr => reset, clk => clkinv, q => ddrout(0)); o1 : oddrxb port map( da => dataout_p(1), db => dataout_n(1), lsr => reset, clk => clkinv, q => ddrout(1)); o2 : oddrxb port map( da => dataout_p(2), db => dataout_n(2), lsr => reset, clk => clkinv, q => ddrout(2)); o3 : oddrxb port map( da => dataout_p(3), db => dataout_n(3), lsr => reset, clk => clkinv, q => ddrout(3)); o4 : oddrxb port map( da => dataout_p(4), db => dataout_n(4), lsr => reset, clk => clkinv, q => ddrout(4)); o5 : oddrxb port map( da => dataout_p(5), db => dataout_n(5), lsr => reset, clk => clkinv, q => ddrout(5)); o6 : oddrxb port map( da => dataout_p(6), db => dataout_n(6), lsr => reset, clk => clkinv, q => ddrout(6)); o7 : oddrxb port map( da => dataout_p(7), db => dataout_n(7), lsr => reset, clk => clkinv, q => ddrout(7));
latticeecp/ec and latticexp  lattice semiconductor ddr usage guide 10-28 --dqs output o8: oddrxb port map( da => gnd_net, db => vcc_net, lsr => reset, clk => clk90, q => dqsout); --clkp and clkn generation o9 : oddrxb port map( da => vcc_net, db => gnd_net, lsr => reset, clk => clk90, q => ddrclk); --****************************************************************************************** end structure;
latticeecp/ec and latticexp  lattice semiconductor ddr usage guide 10-29 appendix d. generic (non-memor y) high-speed ddr interface the following hdl implements the dd r input interface using pfu regist ers for non-memory ddr applications. vhdl implementation library ieee; use ieee.std_logic_1164.all; library ec; use ec.components.all; entity ddrin is port (rst : in std_logic; ddrclk: in std_logic; ddrdata: in std_logic_vector(7 downto 0); datap: out std_logic_vector(7 downto 0); datan: out std_logic_vector(7 downto 0)); end ddrin; architecture structure of ddrin is -- parameterized module component declaration component pll90 port (clk: in std_logic; reset: in std_logic; clkop: out std_logic; clkos: out std_logic; lock: out std_logic); end component; signal pos0 : std_logic_vector( 7 downto 0 ); signal pos1 : std_logic_vector( 7 downto 0 ); signal neg0 : std_logic_vector( 7 downto 0 ); signal clklock : std_logic; signal ddrclk0: std_logic; signal ddrclk90: std_logic; signal vcc_net : std_logic; signal gnd_net: std_logic; attribute syn_useioff : boolean; attribute syn_useioff of structure : architecture is false; begin vcc_net <= '1'; gnd_net <= '0'; -- parameterized module component instance i0 : pll90 port map (clk=>ddrclk, reset=>rst, clkop=>ddrclk0, clkos=>ddrclk90, lock=>clklock); demux: process (rst, ddrclk90) begin if rst = '1' then pos0 <= (others => '0'); neg0 <= (others => '0'); pos1 <= (others => '0'); elsif rising_edge(ddrclk90) then pos0 <= ddrdata;
elsif falling_edge(ddrclk90) then neg0 <=ddrdata; pos1 <=pos0; end if; end process demux; synch: process (rst, ddrclk90) begin if rst = '1' then datap <= (others => '0'); datan <= (others => '0'); elsif rising_edge(ddrclk90) then datap<= pos1; elsif falling_edge(ddrclk90) then datan<= neg0; end if; end process synch; end structure;
latticeecp/ec and latticexp  lattice semiconductor ddr usage guide 10-31 verilog example module ddrin (rst, ddrclk, ddrdata, datap, datan)/*synthesis syn_useioff = 0*/; // inputs input rst; input ddrclk; input [7:0] ddrdata; // outputs output [7:0] datap, datan; reg [7:0] pos0/*synthesis syn_keep=1*/; reg [7:0] pos1/*synthesis syn_keep=1*/; reg [7:0] neg0/*synthesis syn_keep=1*/; reg [7:0] datap, datan/*synthesis syn_keep=1*/; //pll signals wire ddrclk0; wire ddrclk90; pll i0 (.clk(ddrclk), .reset(rst), .clkop(ddrclk0), .clkos(ddrclk90), .lock(clklock)); always @ ( posedge ddrclk90) begin if (rst) begin pos0 <= 0; end else begin pos0 <= ddrdata; end end always@ (negedge ddrclk90) begin if (rst) begin neg0<=0; pos1<=0; end else begin neg0<=ddrdata; pos1<=pos0; end end always @ (posedge ddrclk90) begin if (rst) begin datap<= 0; datan<= 0; end else begin datap<= pos1; datan<= neg0; end
latticeecp/ec and latticexp  lattice semiconductor ddr usage guide 10-32 end endmodule preference file in order to run the above ddr pfu impl ementation at 300mhz, the following pr eferences were ad ded to the soft- ware preference file. commercial; frequency net "ddrclk90" 300.000000 mhz ; input_setup port "ddrdata_0" 0.800000 ns clknet "ddrclk90" ; input_setup port "ddrdata_1" 0.800000 ns clknet "ddrclk90" ; input_setup port "ddrdata_2" 0.800000 ns clknet "ddrclk90" ; input_setup port "ddrdata_3" 0.800000 ns clknet "ddrclk90" ; input_setup port "ddrdata_4" 0.800000 ns clknet "ddrclk90" ; input_setup port "ddrdata_5" 0.800000 ns clknet "ddrclk90" ; input_setup port "ddrdata_6" 0.800000 ns clknet "ddrclk90" ; input_setup port "ddrdata_7" 0.800000 ns clknet "ddrclk90" ; block asyncpaths ;
latticeecp/ec and latticexp  lattice semiconductor ddr usage guide 10-33 appendix e. list of compatible ddr sdram below are the criteria used to list the ddr sdram part numbers. 1. the memory device should support one dqs strobe for every eight dq data bits. 2. 4-bit, 8-bit and 16-bit configurations. for 16-bit configurations, each data byte must have an independent dqs strobe. 3. the memory device uses sstl2 i/o interface standard. 4. data transfer rate ddr400, ddr333 or ddr266 fo r latticeecp/ec devices and ddr333 or ddr266 for latticexp devices. 5. clock transfer rate of 200mhz, 167mhz or 133mhz for latticeecp/ec devices and 167mhz or 133mhz for latticexp devices. ta bl e 1 0 - 9 l i s t s t h e d d r s d r a m p a r t n u m b e r s t h a t c a n be used with the latticeecp/ec and latticexp devices. please note these part numbers are chosen based on the criteria stated above and have not necessary been vali- dated in hardware. table 10-9. list of compatible ddr sdram ddr sdram vendor part number configuration max data rate clock speed micron 128mb mt46v32m4tg 32mx4 ddr266 133mhz micron 128mb mt46v16m8tg 16mx8 ddr333 ddr266 167mhz 133mhz micron 128mb mt46v8m16tg 8mx16 ddr266 133mhz micron 256mb mt46v64m4fg 64mx4 ddr400 ddr333 ddr266 200mhz 167mhz 133mhz micron 256mb mt46v64m4tg 64mx4 ddr400 ddr333 ddr266 200mhz 167mhz 133mhz micron 256mb mt46v32m8fg 32mx8 ddr400 ddr333 ddr266 200mhz 167mhz 133mhz micron 256mb mt46v32m8tg 32mx8 ddr400 ddr333 ddr266 200mhz 167mhz 133mhz micron 256mb mt46v16m16fg 16mx16 ddr266 133mhz micron 256mb mt46v16m16tg 16mx16 ddr400 ddr333 ddr266 200mhz 167mhz 133mhz micron 512mb mt46v128m4fn 128mx4 ddr400 ddr333 ddr266 200mhz 167mhz 133mhz micron 512mb mt46v128m4tg 128mx4 ddr266 133mhz micron 512mb mt46v64m8fn 64mx8 ddr400 ddr333 ddr266 200mhz 167mhz 133mhz micron 512mb mt46v64m8tg 64mx8 ddr400 ddr333 ddr266 200mhz 167mhz 133mhz micron 512mb mt46v32m16fn 32mx16 ddr400 ddr333 ddr266 200mhz 167mhz 133mhz
latticeecp/ec and latticexp  lattice semiconductor ddr usage guide 10-34 micron 512mb mt46v32m16tg 32mx16 ddr400 ddr333 ddr266 200mhz 167mhz 133mhz micron 1gb mt46v256m4tg 256mx4 ddr266 133mhz micron 1gb mt46v128m8tg 128mx8 ddr266 133mhz micron 1gb mt46v64m16tg 64mx16 ddr333 ddr266 167mhz 133mhz samsung 128mb e die k4h280438e-tc/lb3 32mx4 ddr333 167mhz k4h280838e-tc/lb3 16mx8 ddr333 167mhz k4h281638e-tc/lb3 8mx16 ddr333 167mhz samsung 256 mb e-die k4h560438e-tc/lb3 64mx4 ddr333 167mhz k4h560438e-nc/lb3 64mx4 ddr333 167mhz k4h560438e-gc/lb3, cc 64mx4 ddr333 ddr400 167mhz 200mhz k4h560838e-tc/lb3, cc 32mx8 ddr333 ddr400 167mhz 200mhz k4h560838e-nc/lb3, cc 32mx8 ddr333 ddr400 167mhz 200mhz k4h560838e-gc/lb3, cc 32mx8 ddr333 ddr400 167mhz 200mhz samsung 512mb b die k4h510838b-tc/lb3, cc 64mx8 ddr333 ddr400 167mhz 200mhz k4h510838b-nc/lb3, cc 64mx8 ddr333 ddr400 167mhz 200mhz k4h511638b-tc/lb3, cc 32mx16 ddr333 ddr400 167mhz 200mhz k4h510438b-tc/lb3 128mx4 ddr333 167mhz k4h510438b-nc/lb3 128mx4 ddr333 167mhz infineon 128mb hyb25d128400at 32mx4 ddr266 133mhz hyb25d128400ct 32mx4 ddr266 133mhz hyb25d128400ce 32mx4 ddr266 133mhz hyb25d128800at 16mx8 ddr266 133mhz hyb25d128800ct 16mx8 ddr333 167mhz hyb25d128800ce 16mx8 ddr333 167mhz hyb25d128160at 8mx16 ddr333 ddr266 167mhz 133mhz hyb25d128160ct 8mx16 ddr333 ddr400 167mhz 200mhz hyb25d128160ce 8mx16 ddr333 ddr400 167mhz 200mhz hyb25d128160cc 8mx16 ddr333 167mhz table 10-9. list of comp atible ddr sdram (continued) ddr sdram vendor part number configuration max data rate clock speed
latticeecp/ec and latticexp  lattice semiconductor ddr usage guide 10-35 infineon 256mb hyb25d256400bt 64mx4 ddr266 133mhz hyb25d256400ct 64mx4 ddr266 133mhz hyb25d256400ce 64mx4 ddr266 133mhz hyb25d256800bt 32mx8 ddr333 167mhz hyb25d256800ct 32mx8 ddr333 167mhz hyb25d256800ce 32mx8 ddr333 ddr400 167mhz 200mhz hyb25d256160bt 16mx16 ddr400 ddr333 ddr266 200mhz 167mhz 133mhz hyb25d256160ct 16mx16 ddr333 ddr400 167mhz 200mhz hyb25d256160ce 16mx16 ddr333 ddr400 167mhz 200mhz hyb25d256400bc 64mx16 ddr400 ddr333 ddr266 200mhz 167mhz 133mhz hyb25d256400cf 64mx16 ddr333 167mhz hyb25d256400cc 64mx16 ddr333 167mhz hyb25d256160bc 16mx16 ddr333 ddr266 167mhz 133mhz hyb25d256160cc 16mx16 ddr333 ddr400 167mhz 200mhz infineon 512mb hyb25d512400at 128mx4 ddr266 133mhz hyb25d512400bt 128mx4 ddr333 167mhz hyb25d512400be 128mx4 ddr333 167mhz hyb25d1g400bg 256mx4 ddr266 133mhz hyb25d512800at 64mx8 ddr333 ddr266 167mhz 133mhz hyb25d512800bt 64mx8 ddr333 ddr400 167mhz 200mhz hyb25d512800be 64mx8 ddr333 ddr400 167mhz 200mhz hyb25d512160at 32mx16 ddr333 ddr266 167mhz 133mhz hyb25d512160bt 32mx16 ddr333 ddr400 167mhz 200mhz hyb25d512160be 32mx16 ddr333 ddr400 167mhz 200mhz hyb25d512400bc 128mx4 ddr333 ddr400 167mhz 200mhz hyb25d512400bf 128mx4 ddr333 ddr400 167mhz 200mhz hyb25d512800bc 64mx8 ddr333 167mhz hyb25d512800bf 64mx8 ddr333 ddr400 167mhz 200mhz hyb25d512160bc 32mx16 ddr333 ddr400 167mhz 200mhz hyb25d512160bf 32mx16 ddr333 ddr400 167mhz 200mhz table 10-9. list of comp atible ddr sdram (continued) ddr sdram vendor part number configuration max data rate clock speed
latticeecp/ec and latticexp  lattice semiconductor ddr usage guide 10-36 appendix f. ddr400 interface usin g the latticeec evaluation board the ddr400 interface was implemented using the latticeec20 device on the latticeec advanced evaluation board. figures 10-21, 10-22 and 10-23 show the read, wr ite and write to read transition operations running at 200mhz. for more information on the evaluation board, refer to latticeec advanced evaluation board users guide available on the lattice web site at www.latticesemi.com . figure 10-21. read function running at 200mhz note: an extra read command is implemented in the latticeec20 device to protect the data during postamble. this extra read is not required for other latticeec device s. refer to the dqs postambl e section of this document for more information.
latticeecp/ec and latticexp  lattice semiconductor ddr usage guide 10-37 figure 10-22. write function running at 200mhz figure 10-23. write to read transition running at 200mhz note: an extra read command is implemented in the latticeec20 device to protect the data during postamble. this extra read is not required for other latticeec device s. refer to the dqs postambl e section of this document for more information.
www.latticesemi.com 11-1 tn1049_04.3 june 2007 technical note tn1049 ? 2007 lattice semiconductor corp. all lattice trademarks, register ed trademarks, patents, and disclaimers are as listed at www .latticesemi.com/legal. all other brand or product names are trademarks or registered trademarks of their respective holders. the specifications and information herein are subject to change without notice. introduction as clock distribution and clock skew management become critical factors in overall system performance, the phase locked loop (pll) is increasing in importance for digital designers. lattice incorporates its sysclock pll tech- nology in the latticeecp, latticee c and latticexp device families to help designers manage clocks within their designs. the pll components in the latticeecp/ec a nd latticexp device families share the same architec- ture. this technical note describes the features and functionalities of the plls and their configuration in the isp- lever design tool. figure 11-1 shows the block diagram of the pll. figure 11-1. latticeecp/ec and latticexp sysclock pll block diagram features clock synthesis ?hase shift/duty cycle selection internal and external feedback ?ynamic delay adjustment no external components required ?ock detect output functional description pll divider and delay blocks input clock (clki) divider the clki divider is used to control the input clock frequency into the pll block. it can be set to an integer value of 1 to 16. the divider setting directly corresponds to the divisor of the output clock. the input and output of the input divider must be within the input and output frequency ranges specified in the device data sheet. feedback loop (clkfb) divider the clkfb divider is used to divide the feedback signal. effectively, this multiplies the output clock, because the divided feedback must speed up to match the input frequency into the pll block. the pll block increases the out- put frequency until the divided feedback frequency equals the input frequency. like the input divider, the feedback clki divider clkfb divider delay adjust phase & frequency detector voltage controlled oscillator clkop divider clkok divider phase/duty select lock detect loop filter rst clkfb clki lock clkop clkos clkok ddaozr ddaolag ddaodel[2:0] ddamode ddaizr ddailag ddaidel[2:0] internal feedback from clkop divider output latticeecp/ec and latticexp sysclock pll design and usage guide
latticeecp/ec and latticexp lattice semiconductor sysclock pl l design and usage guide 11-2 loop divider can be set to an integer value of 1 to 16. the input and output of the feedback divider must be within the input and output frequency ranges specified in the device data sheet. delay adjustment the delay adjust circuit provides programmable clock delay. the programmable clock delay allows for step delays in increments of 250ps (nominal) for a total of 2.00ns lagging or leading. the time delay setting has a tolerance. see device data sheet for details. under this mode, clkop, clkos and clkok are identically affected. the delay adjustment has two modes of operation: static delay adjustment in this mode, the user-selected delay is configured at power-up. dynamic delay adjustment (dda) in this mode, a simple bus is used to configure the delay. the bus signals are available to the general purpose fpga. output clock (clkop) divider the clkop divider serves the dual purposes of squaring the duty cycle of the vco output and scaling up the vco frequency into the 420mhz to 840mhz range to minimize jitter. refer to table 11-3 for clkop divider value. clkok divider the clkok divider feeds the global clock net. it divides the clkop signal of the pll by the value of the divider. it can be set to values of 2, 4, 6,....126,128. pll inputs and outputs clki input the clki signal is the reference clock for the pll. it must conform to the specifications in the data sheet in order for the pll to operate correctly. the clki can be derived from a dedicated dual-purpose pin or from routing. rst input the pll reset occurs under two conditions. at power-up an internal power-up reset signal from the configuration block resets the pll. the user controlled pll reset signal rst is provided as part of the pll module that can be driven by an internally generated reset function or a pin. this rst signal resets all internal pll counters. when rst goes inactive, the pll will start th e lock-in process, and will take the t lock time to complete the pll lock. note: for latticeecp/ec, rst must be asserted to re-start the locking process after losing lock. refer to the lat- ticeecp/ec family data sheet for the rst pulse width requirement. for latticexp, rst may be tied to gnd. figure 11-2 shows the timing diagram of the rst input. figure 11-2. rst input timing diagram clkfbk input the feedback signal to the pll, which is fed through the feedback divider can be derived from the global clock net, a dedicated dual-purpose pin, or directly from the clkop divider. feedback must be supplied in order for the pll to synchronize the input and output clocks. external feedback allows the designer to compensate for board-level clock alignment. clkop output the sysclock pll main clock output, clkop, is a signal available for selection as a primary clock. t rst t lock rst lock
latticeecp/ec and latticexp lattice semiconductor sysclock pl l design and usage guide 11-3 clkos output with phase and duty cycle select the sysclock pll auxiliary clock output, clkos, is a si gnal available for selectio n as a primary clock. the clkos is used when phase shift and/or duty cycle adjustment is desired. the programmable phase shift allows for different phase in increments of 45 to 315. the duty select feature provides duty select in 1/8th of the clock period. clkok output with lower frequency the clkok is used when a lower frequency is desired. it is a signal available for selection as a primary clock. dynamic delay control i/o ports refer to table 11-1 and table 11-3 for detailed information. lock output the lock output provides information about the status of the pll. after the device is powered up and the input clock is valid, the pll will achieve lock within the specified lo ck time. once lock is achieved, the pll lock signal will be asserted. if, during operation, the input clock or feed back signals to the pll become invalid, the pll will lose lock. the lock signal is available to the fp ga routing to implement generation of rst. note: for latticeecp/ec, rst must be asserted to restart the locking process after losing lock. refer to the latticeecp/ec family data sheet for the rst pulse width requirement. for latticexp, rst may be tied to gnd. pll attributes the pll utilizes several attributes that allow the configuration of the pll th rough source constraints. the following section details these attributes and their usage. fin the input frequency can be any value within the specified frequency range based on the divider settings. clki_div, clkfb_div, clkop_div, clkok_div these dividers determine the output frequencies of each output clock. the user is not allowed to input an invalid combination; determined by the input frequency, the dividers, and the pll specifications. frequency_pin_clki, frequency_pin_clkop and frequency_pin_clkok these output clock frequencies determine the divider values. fdel the fdel attribute is used to pass the delay adjustment step associated with the output clock of the pll. this allows the user to advance or retard the output clock by the step value passed multiplied by 250ps(nominal). the step ranges from -8 to +8 resulting the total delay range to +/- 2ns. phaseadj the phaseadj attribute is used to se lect coarse phase shift for clkos output. the phase adjustment is pro- grammable in 45 increments. duty the duty attribute is used to select the duty cycle for clkos output. the duty cycle is programmable at 1/8 of the period increment. fb_mode there are three sources of feedback signals that can drive the clkfb divider: internal, clocktree and external feedback. clocktree feedback is used by default. internal feedback takes the clkop output at clkop divider out- put before the clocktree to minimize the feedback path delay. the external feedback is driven from the pin. delay_cntl
latticeecp/ec and latticexp lattice semiconductor sysclock pl l design and usage guide 11-4 this attribute is designed to select the delay adjustment mode. if the attribute is set to dynamic?the delay con- trol switches between dynamic and static depending upon the input logic of ddamode pin. if the attribute is set to ?tatic, dynamic delay inputs are ignored in this mode. latticeecp/ec and latticexp pll primitive definitions the pll primitive name is ehxpllb. figure 11-3 shows the latticeecp/ec and latticexp pll primitive library symbol. some features and i/os are optional as described in table 11-1 and table 11-2. figure 11-3. latticeecp/ec and latticexp pll primitive symbol table 11-1. latticeecp/ec and latticexp pll i/o definitions pll attributes definitions the ehxpllb can be configured through attributes in the source code. the following section details these attri- butes and their usage. signal i/o description optional clki i pll reference clock input. from internal logic or dedicated clock pin. no clkfb 1 ifeedback clock input. from internal node, clkop or dedicated pin. no rst i ??to reset pll no clkop o pll output clock to clock tree no clkos o pll output clock to clock tree wit h optional phase shift/duty cycle yes clkok o pll output clock to clock tree through k-divider for lower frequency yes lock 2 o1 indicates pll locked to clki yes ddamode i dda mode. ?? pin control (dyn amic), ?? fuse control (static) yes ddaizr i dda delay zero. 1 delay=0 , ?? delay=[ddi lag+ddaidel]. yes ddailag i dda lag/lead. ?? lead, ?? lag. yes ddaidel[2:0] i dda delay ye s ddaozr o dda delay zero output yes ddaolag o dda lag/lead output yes ddaodel[2:0] o dda delay output yes 1. when internal feedback or clocktree feedback is selected in the ipexpress gui, software uses clko p as the source of clkfb. c lkos is not recommended as the source of clkfb even in external feedback mode. 2. modelsim simulation models take two to four cloc k cycles from rst release to lock high. table 11-2. latticeecp/ec and latticexp pll attributes user accessible ipexpress gui access attribute name preference language support preference editor support value default value units clki frequency y frequency_pin_clki n n note 5 100 mhz clkop frequency y frequency_pin_clkop n n note 5 100 mhz clkok frequency y frequency_pin_clkok n n note 5 50 mhz clkop frequency to l e r a n c e ynn0.0, 0.1, 0.2, 0.5, 1.0, 2.0, 5.0, 10.00.0% ehxpllb rst clki clkfb ddamode ddaizr ddailag ddaidel2 ddaidel1 ddaidel0 clkop clkos clkok lock ddaozr ddaolag ddaodel2 ddaodel1 ddaodel0
latticeecp/ec and latticexp lattice semiconductor sysclock pl l design and usage guide 11-5 fdel settings there are four ways the user can enter the desired fdel value. 1. although the fdel entry is not available in the ipexpress gui, the module generated by ipexpress includes the attribute with default value, ?? users can replace it with a desired value.   example of source code with default fdel value: attribute fdel of ehxpll_mod_0_0 : label is "0"; generic map ( fdel=>"0", ") 2. preference file: user may specify the preference in the preference file.   example: asic "fdel_code_0_0" type "ehxpllb" fdel="-2" ; 3. pre-map preference editor: users can enter the fdel value in the pre-map preference editor as shown in figure 11-4 . clkop actual frequency ynn mhz clkok frequency to l e r a n c e ynn0.0, 0.1, 0.2, 0.5,1.0, 2.0, 5.0, 10.0 0.0% clkok actual frequency ynn mhz clki divider setting yclki_div 4, 6 yn 1 to 16 (1 to 15) 1 clkfb divider setting yclkfb_div 6 yn 1 to 16 (1 to 15) 1 clkop divider setting yclkop_div 6 yn note 3 8 2 (4 or 6) clkok divider setting yclkok_div y n 2, 4, 6,..,126, 128 2 fine delay adjust n fdel y y -8 to 8 0 ps coarse phase shift selection (o) yphaseadj y n 0, 45, 90...315 0 degrees duty cycle selection (1/8 increment) yduty y n 1 to 7 4 delay control y delay_cntl1 y n dynamic/static static feedback mode y fb_mode n n internal/clocktree/external clocktree clkos select y n n clkok select y n n 1. dynamic: this mode switches delay control between dyna mic and static depending upon the input logic of the ddamode pin.  static: this is static control only mode. 2. the clkop_div value is calculated to maximize the f vco within the specified range. for latticexp devices, if clkos is not used, the default value is 6. if clkos is used, the value is 4. 3. the clkop divider values are 2, 4, 6, 8,..32 (2, 4, 6, 8..30 for latticexp devices) if clkos is not used. the clkop divider v alues are 2, 4, 8, 16, 32 (2, 4, 8, 16 for latti cexp devices) if clkos is used. 4. all divider settings are user trans parent in frequency mode. these are us er attributes in divider mode. 5. refer to data sheet for frequency limits. 6. values in parentheses are for latticexp devices. 7. this attribute is not available in the ipexpress gui. after reviewing the trace report file, users can determine the amount o f delay that will best fit the clocking in their design. further informatio n on fdel settings is described in the following section. table 11-2. latticeecp/ec and latticexp pll attributes (continued) user accessible ipexpress gui access attribute name preference language support preference editor support value default value units
latticeecp/ec and latticexp lattice semiconductor sysclock pl l design and usage guide 11-6 figure 11-4. pre-map preference editor 4. epic device editor: users can edit their preferences in the epic device editor as shown in figure 11-5 . figure 11-5. epic preferences edit window dynamic delay adjustment the dynamic delay adjustment is cont rolled by the ddamode input. when th e ddamode input is set to ?, the delay control is handled through the inputs, ddaizr, ddailag and ddaidel(2:0). for this mode, the attribute delay_cntl must be set to dynamic. table 11-3 shows the delay adjustment values based on the attri- bute/input settings. in this mode, the pll may come out of lock due to the abrupt change of phase. rst must be asserted to re-lock the pll. upon de-assertion of rst, the pll will start the lock-in process and will take the t lock time to complete the pll lock.
latticeecp/ec and latticexp lattice semiconductor sysclock pl l design and usage guide 11-7 table 11-3. delay adjustment pll usage in ipexpress including sysclock plls in a design the sysclock pll capability can be a ccessed through the ipexpress gui. the following section describes the usage of ipexpress. ipexpress usage the latticeecp/ec and latticexp pll is fully supported in ipexpress in th e isplever software. ipexpress allows the user to define the desired pll using a simple, easy-to-use gui. following definition, a vhdl or verilog module that instantiates the desired pll is created. this m odule can be included directly in the users design. figure 11-6 shows the main window when pll is selected . the only entry required in this window is the module name. after entering the module name, clicking on ?us tomize?will open the ?onfigura tion?window as shown in figure 11-7. ddamode = 1: dynamic delay adjustment delay 1 t dly = 250ps (nominal) ddamode = 0 ddaizr ddailag ddaidel[2:0] equivalent fdel value 01111lead 8 t dly -8 01110lead 7 t dly -7 01101lead 6 t dly -6 01100lead 5 t dly -5 01011lead 4 t dly -4 01010lead 3 t dly -3 01001lead 2 t dly -2 01000lead 1 t dly -1 1dont caredont careno delay 0 00000lag 1 t dly 1 00001lag 2 t dly 2 00010lag 3 t dly 3 00011lag 4 t dly 4 00100lag 5 t dly 5 00101lag 6 t dly 6 00110lag 7 t dly 7 00111lag 8 t dly 8 note: t dly = unit delay time = 250 ps (nominal). see the data sheet for the tolerance of this delay
latticeecp/ec and latticexp lattice semiconductor sysclock pl l design and usage guide 11-8 figure 11-6. ipexpress main window configuration tab the configuration tab lists all user accessible attributes. default va lues are set initially. there are two modes in the configuration tab which can be used to configure the pll, frequency mode and divider mode. frequency mode : in this mode, the user enters input and output clock frequencies and the software calculates the divider settings for the user. if the outp ut frequency the user entered is not achievable, the neare st frequency will be displayed in the ?ctual?text box. after input and output frequencies are entered, clicki ng the ?alculate?button will display the divider values. if the desired output frequency is not achievable with the given frequency tolerance, the software generates an error. users may increase the frequency tolerance or change the output frequencies. figure 11-7 shows the configuration tab window.
latticeecp/ec and latticexp lattice semiconductor sysclock pl l design and usage guide 11-9 figure 11-7. configuration tab divider mode : in this mode, the user sets the input frequency and divider settings. it is assumed the user is famil- iar with the pll operation. the user must choose the clkop divider value to maximize the f vco to achieve opti- mum pll performance. after input freq uency and divider settings are set, clic king the calculate?button will display the output frequencies. if the divider settings are out of the pll specification, the software will generate an error. ehxpllb example projects isplever provides example pll projects for first time pll users. in the isplever project navigator, go to the file menu and select open examples... . select the fpga folder. the latticeec and latticexp folders include pll example projects in both verilog and vhdl.
latticeecp/ec and latticexp lattice semiconductor sysclock pl l design and usage guide 11-10 equations for generating inpu t and output frequency ranges the values of f in, f out and f vco are the absolute frequency ranges for the pll. the values of f inmin, f inmax, f out- min and f outmax are the calculated frequency ranges based on the divider settings. these calculated frequency ranges become the limits for the specific divider settings used in the design. table 11-4. frequency limits the divider names are abbreviated with legacy names as: ?lki divider:m ?lkfb divider:n ?lkop divider:v ?lkok divider:k for use in the equations below. f vco constraint from the loop: f out = f in * (n/m) (1) from the loop: f vco = f out * v (2) substitute (1) in (2) yields: f vco = f in * (n/m) * v (3) arrange (3): f in = (f vco / (v*n))*m (4) from equation (4): f inmin = ((f vcomin /(v*n))*m (5) f inmax = (f vcomax /(v*n))*m (6) f pfd constraint from the loop: f pfd = f in / m (7) f in = f pfd * m f inmin = f pfdmin * m = 25 * m (assume f pfdmin = 25) (8) equation (5) becomes: parameter lattice ecp/ec latticexp f in note 1 f out note 1 f outk note 1 f vco (hz) note 1 clki divider 1 to 16 1 to 15 clkfb divider 1 to 16 1 to 15 clkop divider see table 11-2 clkok divider 2, 4, 6, 8,.. ,126, 128 maximum (n*v) 32 30 f pfd (f in /m) (hz) note 1 note: refer to data sheet for the latest data.
latticeecp/ec and latticexp lattice semiconductor sysclock pl l design and usage guide 11-11 f inmin = ((f vcomin / (v*n))*m, if below 25 * m round up to 25 * m (9) from the loop: f inmax = f pfdmax * m = 420 * m (10) assume f inmax = 420 equation (6) becomes: f inmax = (f vcomax / (v*n))*m, if above 420 round down to 420 (11) from equation (1): f outmin = f inmin * (n/m), if below 25 * n round up to 25 * n (12) f outmax = f inmax * (n/m), if above 420 round down to 420 (13) f outkmin = f outmin / k f outkmax = f outmax / k clock distribution in latticeecp/ec and latticexp the clock inputs are selected from external i/os, the s ysclock plls or general routing. these clock inputs are fed through the chip via a clock distribution system. latticeecp/ec and latticexp devices provide a quadrant-based primary and secondary clock structure. primary clock sources and distribution each quadrant has four primary clock nets: clk0, clk1, clk2 and clk3. clk2 and clk3 provide dynamic clock selection (dcs) capability. figure 11 -8 illustrates the block diagram of the primary clock distribution. figure 11-8. primary clocks and center switch boxes note: two plls are available in latt iceecp/ec/xp-6 or smaller devices. primary clocks in center switch box pll*: for latticeecp/ec/xp-10 and larger devices quadrant tl quadrant tr quadrant bl quadrant br pclkt7 pclkt2 pll* clkop clkos clkok pll clkop clkos clkok pll* clkop clkos clkok pll clkop clkos clkok general routing general routing clk0 clk1 clk2 clk3 dcs dcs dcs 16:1 dcs clk3 clk2 clk1 clk0 general routing general routing clk0 clk1 clk2 clk3 16:1 16:1 16:1 16:1 12:1 12:1 12:1 12:1 12:1 12:1 12:1 12:1 dcs dcs 16:1 clk3 clk2 clk1 clk0 16:1 16:1 12:1 12:1 12:1 12:1 12:1 12:1 12:1 12:1 dcs dcs pclkt0 pclkt5
latticeecp/ec and latticexp lattice semiconductor sysclock pl l design and usage guide 11-12 note on the primary clock the clkop must be used as the feedback source to optimize the pll performance. most designers use the pll for the clock tree injection removal mode and the clkop should be assigned as the primary clock. this is done automatically by the software unless the user specifies otherwise. clkop can route to clk0 and clk1 only. clkos/clkok can route to a ll primary clocks (clk0 to clk3). when clk2 or clk3 is used as a primary clock and there is only one clock input to the dcs, the dcs is assigned as a buffer mode by the software. please see the dcs section of this document for further information. clock net preferences there are two clock nets, primary clock and secondary clock. as illustrated in figure 11-9, users ca n set each clock to the desired clock ne t in the pre-map pr eference editor or write in the preference file as shown in the examples below. primary-pure and primary-dcs primary clock net can be assigned to either primary-pure (clk0 and clk1) or primary-dcs (clk2 and clk3). syntax example use primary dcs net "bf_clk"; global primary clock and quadrant primary clock global primary clock if a primary clock is not assigned as a quadrant clock, the software assumes it is a global clock. there are two global primary/pure clocks an d two global primary/dcs clocks available. quadrant primary clock any primary clock may be assigned to a quadrant clock. the clock may be assigned to a single quadrant or to two adjacent quadrants (not diagonally adjacent). when the quadrant clock net is used, users must ensure that the registers each clock drives can be assigned in that quadrant without any routing issues. with the quadrant primary clocking scheme, the maximum number of primary clocks is 16 as long as all the pri- mary clock sources are avaialble. syntax example use primary pure net "bf_clk" quadrant_tl;
latticeecp/ec and latticexp lattice semiconductor sysclock pl l design and usage guide 11-13 figure 11-9. clock preferences in the pre-map preference editor secondary clock sour ces and distribution latticeecp/ec and latticexp devices support quadrant ba se secondary clocks. figure 11-10 describes the sec- ondary clock arrangement. figure 11-10. secondary clock center switch box limitations on secondary clock availability as illustrated in figure 11-1 1, three second ary clocks are shared with clk, ce and lsr. this routing scheme limits the secondary clocks available per quadrant base to three, which results in a maximum of 12 available secondary clocks per device. figure 11-11 illustrates the primary and secondary clock distribution structure of the pfus. quadrant tr scondary clock trunk quadrant bl scondary clock trunk quadrant br scondary clock trunk pclkt7 pclkt2 pcl kt0 pcl kt5 general routing 4 general routing 4 general routing 4 quadrant tr scondary clock trunk general routing 4 secondary clocks in center switch box sclk0 sclk1 sclk2 sclk3 sclk3 sclk2 sclk1 sclk0 8:1 8:1 8:1 8:1 8:1 8:1 8:1 8:1 sclk0 sclk1 sclk2 sclk3 sclk3 sclk2 sclk1 sclk0 8:1 8:1 8:1 8:1 8:1 8:1 8:1 8:1
latticeecp/ec and latticexp lattice semiconductor sysclock pl l design and usage guide 11-14 lfec6/lfxp6 and smaller devices have limited routing resources and can implement a maximum of nine second- ary clocks per device. figure 11-11. primary clock and se condary clock/ce/lsr distribution dynamic clock selection (dcs) dcs is a global clock buffer incorporating a smart multiplexer function that takes two independent input clock sources and avoids glitches or runt pulses on the output clock, regardless of when the enable signal is toggled. the dcs blocks are located in pairs at the center of each side of the device. thus, there are eight of them in every device. table 11-5. dcs i/o i/o name description input sel input clock select clk0 primary clock input 0 clk1 primary clock input 1 output dcsout to primary clock primary clock 25:1 secondary clock /ce/lsr 4 3 pfu clk(0:3) pclk0 pclk1 pclk2 pclk3 sclk0/ce/lsr sclk2/ce/lsr sclk3/ce/lsr sclk1/ce/lsr 3 20:1 pfu ce(0:3) pfu lsr(0:3) 3 secondary clock/ce/lsr net 20 :1 local local local secondary clock /ce/lsr secondary clock /ce/lsr primary clock net
latticeecp/ec and latticexp lattice semiconductor sysclock pl l design and usage guide 11-15 table 11-6. dcs attributes figure 11-12. dcs primitive symbol dcs waveforms the dcsout waveform timing is described in figure 11-13 for each mode. the ?os?and ?eg?modes describe dcsout timing at both the falling and rising edges of sel. figure 11-13. dcs waveforms dcs mode = pos at the rising edge (pos) of sel, the dcsout changes from clk0 to clk1. this mode is the default mode. attribute name description output value sel=0 sel=1 dcs mode rising edge triggered, latched state is high clk0 clk1 pos (default) falling edge triggered, latched state is low clk0 clk1 neg sel is active high, disabled output is low 0 clk1 high_low sel is active high, disabled output is high 1 clk1 high_high sel is active low, disabled output is low clk0 0 low_low sel is active low, disabled output is high clk0 1 low_high buffer for clk0 clk0 clk0 clk0 buffer for clk1 clk1 clk1 clk1 dcs dcsout clk0 sel clk1 clk0 clk1 sel dcsout sel falling edge: - wait for clk1 rising edge, latch output & remain high - switch output at clk0 rising edge sel rising edge: - wait for clk0 rising edge, latch output & remain high - switch output at clk1 rising edge dcs mode = pos
latticeecp/ec and latticexp lattice semiconductor sysclock pl l design and usage guide 11-16 dcs mode = neg at the falling edge (neg) of sel, the dcsout changes from clk0 to clk1. dcs mode = high_low sel is active high (high) to select clk1, and the disabled output is low. dcs mode = low_low sel is active low (low) to select clk0, and the disabled output is low. dcs mode = high_high sel is active high (high) to select clk1, and the disabled output is high. dcs mode = low_high sel is active low (low) to select clk0, and the disabled output is high. clk0 clk1 sel dcsout sel falling edge: - wait for clk1 falling edge, latch output & remain low - switch output at clk0 falling edge sel rising edge: - wait for clk0 falling edge, latch output & remain low - switch output at clk1 falling edge dcs mode = neg clk1 sel dcsout - switch low at clk1 falling edge. - if sel is low, output stays low at on clk1 rising edge. sel must not change during setup prior to rising clock. dcs mode = high_low clk0 sel dcsout - switch low at clk0 falling edge. - if sel is high, output stays low at on clk0 rising edge. dcs mode = low_low
latticeecp/ec and latticexp lattice semiconductor sysclock pl l design and usage guide 11-17 use of dcs with pll the four pll clkop sources reach clk0 and clk1 of the quadrant clock. when using the dcs, the pll needs a free-running feedback path to keep the pll in lock. the user should use clkop as this feedback path, and clkos as the input into the dcs. clkop does not reach clk2 or clk3 to prevent the user from using the pll improperly with dcs. see figure 11-14. figure 11-14. implementation of dynamic clock select for a pll clock (must use both clkop and clkos) other design considerations jitter considerations the clock output jitter specifications assume that the refere nce clock is free of jitter. even if the clock source is clean, there are a number of sources that place noise in the pll clock input. while intrinsic jitter is not avoidable, there are ways to minimize the input jitter and output jitter. signal inputs that share the same i/o bank with pll clock inputs are preferably less noisy inputs and slower switch- ing signals. try to avoid placing any high speed and noisy signals in the same i/o bank with clock signals if possi- ble. use differential signaling if possible. when external feedback is used, the pcb path must be well designed to avoid reflection as well as noise coupling from adjacent signal sources. a shorter pcb feedback path length does not necessarily reduce feedback input jit- ter. simulation limitations simulation does not compensate for external delays and dividers in the feedback loop. ?he lock signal is not simulated according to the t lock specification. the lock signal will appear active shortly after the simulation begins, but will remain active throughout the simulation. ?he jitter specifications are not included. clk1 sel dcsout - switch high at clk1 rising edge. - if sel is low, output stays low high on clk1 falling edge. dcs mode = high_high clk0 sel dcsout - switch high at clk0 rising edge. - if sel is high, output stays high on clk0 falling edge. dcs mode = low_high clkop clkos (set 0 ) clkfb clki pll clk2 clk0 d c s clk2 isb clk2 isb clk0 isb
latticeecp/ec and latticexp lattice semiconductor sysclock pl l design and usage guide 11-18 pcb layout recommendat ions for vccpll and gndpll if separate pins are available it is best to connect vccpll to vcc at a single point using a filter and to create a separate gndpll plane directly under it (tied via a single point to gnd). separate islands for both vccpll and gndpll are recommended if applicable. dcs usage with verilog module dcs(clk0,clk1,sel,dcsout); input clk0, clk1, sel; output dcsout; dcs dcsinst0 (.sel(sel),.clk0(clk0),.clk1(clk1),.dcsout(dcsout)); defparam dcsinst0.dcsmode = "clk0"; endmodule dcs usage with vhdl component dcs -- synthesis translate_off generic ( dcsmode : string := "pos" ); -- synthesis translate_on port ( clk0 :in std_logic; clk1 :in std_logic; sel :in std_logic; dcsout :out std_logic ); end component; attribute dcsmode : string; attribute dcsmode of dcsinst0 : label is "pos"; begin dcsinst0: dcs -- synthesis translate_off generic map( dcsmode => "pos" ) -- synthesis translate_on port map ( sel => clksel, clk0 => dcsclk0, clk1 => sysclk1, dcsout => dcsclk );
latticeecp/ec and latticexp lattice semiconductor sysclock pl l design and usage guide 11-19 technical support assistance hotline: 1-800-lattice (north america) +1-503-268-8001 (outside north america) e-mail: techsupport@latticesemi.com internet: www.latticesemi.com revision history date version change summary june 2004 01.0 initial release. october 2004 01.1 rst description with timing diagram added. primitive wake_on_lock removed. added rst input in epllb. fin min 33 replaced with 25. fb_mode default = clocktree clkop_div values for ehxpllb 2, 4, 8,16, 32. december 2004 02.0 appendices c and d integrated to body of the document. dcs source code example moved to appendix a. january 2005 03.0 latticexp information added. figures 6 and 7 updated. clkop_freq, clkok_freq user attributes added. fb_mode added. october 2005 04.0 clock distribution section added. example code section removed and referred to help file. gui screen shots updated. mm/ip manager renamed as ipexpress. epllb definition section removed. clkos/clkok select attributes added. september 2006 04.1 detailed clock distribution information added. april 2007 04.2 updated footnote 3 in the lat ticeecp/ec and latticexp pll attributes table. june 2007 04.3 updated lock output section of pll inputs and outputs.. latticeecp/ec and latticexp pll i/o definitions table - corrected sig- nal name ddaidel to read ddaidel[ 2:0] in the signals column.
latticeecp/ec and latticexp lattice semiconductor sysclock pl l design and usage guide 11-20 appendix a. clock preferences a few key clock preferences are introduced below. refer to the ?elp?file for other preferences and detailed infor- mation. asic the following preference command assigns a phase of 90 to the cimdlla clkop. asic "my_pll" type "exhxpllb" clkos_phase=90; frequency the following physical preference command assigns a frequency of 100 mhz to a net named clk1. frequency net "clk1" 100 mhz; the following preference specifies a hold margin value for each clock domain. frequency net "rx_clka_cmos_c" 100.000 mhz hold_margin 1 ns; maxskew the following command assigns a maximum skew of 5 ns to a net named netb. maxskew net "netb" 5 ns; multicycle the following command will rela x the period to 50 ns for the path starting at compa to compb (net1). multicycle "path1" start comp "compa" end comp "compb" net "net1" 50 ns ; period the following command assigns a clock period of 30 ns to the port named clk1. period port "clk1" 30 ns; prohibit this command prohibits the use of a primar y clock to route a clock net named bf_clk. prohibit primary net "bf_clk"; clock_to_out specifies a maximum allowable outp ut delay relative to a clock. below are two preferences using both the clkport and clknet keywords showing the corresponding scope of trace reporting. the clknet will stop tracing the path before the pll, so you will not get pll comp ensation timing numbers. clock_to_out port "rxaddr_0" 6.000000 ns clknet "pll_rxclk" ; the above preference will yiel d the following clock path:
latticeecp/ec and latticexp lattice semiconductor sysclock pl l design and usage guide 11-21 physical path details: clock path pll_inst/pll_utp_0_0 to pfu_33: name fanout delay (ns) site resource route 49 2.892 ulppll.mclk to r3c14.clk0 pll_rxclk -------- 2.892 (0.0% logic, 100.0% route), 0 logic levels. if clkport is used, the trace is complete back to the clock port resource and provides pll compensation timing numbers. clock_to_out port "rxaddr_0" 6.000000 ns clkport "rxclk" ; the above preference will yiel d the following clock path: clock path rxclk to pfu_33: name fanout delay (ns) site resource in_del --- 1.431 d5.pad to d5.inck rxclk route 1 0.843 d5.inck to ulppll.clkin rxclk_c mclk_del --- 3.605 ulppll.clkin to ulppll.mclk pll_inst/pll_utp_0_0 route 49 2.892 ulppll.mclk to r3c14.clk0 pll_rxclk -------- 8.771 (57.4% logic, 42.6% route), 2 logic levels. input_setup specifies an setup time requirement for input ports relative to a clock net. input_setup port "datain" 2.000000 ns hold 1.000000 ns clkport "clk" pll_phase_back ; pll_phase_back this preference is used with input_setup when the user wants a trace calculation based on the previous clock edge. this preference is useful when setting the pll output phase adjustment. since there is no negative phase adjust- ment provided, the pll_phase_back preference works as if negative phase ad justment is available. for example: if phase adjustment of -90 of clkos is desired, the user can set the phase to 270 and set the input_setup preference with pll_phase_back.
www.latticesemi.com 12-1 tn1052_02.3 september 2007 technical note tn1052 ? 2007 lattice semiconductor corp. all lattice trademarks, register ed trademarks, patents, and disclaimers are as listed at www .latticesemi.com/legal. all other brand or product names are trademarks or registered trademarks of their respective holders. the specifications and information herein are subject to change without notice. introduction one of the requirements wh en using fpga devices is the ability to ca lculate power dissipation for a particular device used on a board. lattices isplever design tools include a power calculator tool which allows designers to calculate the power dissipation for a given device. this technical note explains how to use power calculator to calculate the power consumption of lattice devices. general guidelines to reduce power consumption are also included. power supply sequencing and hot socketing latticeecp, latticeec and latticexp devices have eight sysio buffer banks in addition to the v cc, v ccaux and v ccj power supplies; each is capable of supporting multiple i/o standards. each sysio bank has its own i/o supply voltage (v ccio ), and two voltage references v ref1 and v ref2 resources allowing ea ch bank to be com- pletely independent from each other. the latticeecp/ec and latticexp devices are designed to ensure predictable behavior during power-up and power-down. power supplies can be sequenced in any order. the i/os remain in tristate until the power supply volt- age is high enough to ensure reliable operation during power up and power-down sequences and the leakage into i/o pins is controlled to within specifi ed limits. refer to the typical i/o behavior during power-up and hot socketing sections of the device data sheet for more details. power calculator hardware assumptions the power consumption for a device can be coarsely broken down into the dc portion and the ac portion. the power calculator reports the power dissipation in terms of: 1. dc portion of the power consumption. 2. ac portion of the power consumption. the dc power (or the static power consumption) is the total power consumption of the used and unused resources. these components are fixed for each resource used and depend upon the numb er of resource units utilized. the dc component also includes the static power dissipation for the unused resources of the device. the ac portion of power consumption is associated with th e used resources and it is the dynamic part of the power consumption. its power dissipation is directly proportional to the frequency at which the resource is running and the number of resource units used. power calculator power calculator is a powerful tool which allows users to make an estimate of the power consumption at two differ- ent levels: 1. estimate of the utilized resources before completing place and route 2. post place and route design for first level estimation, the user provides estimates of device usage in the power calculator wizard and the tool provides a rough estimate of the power consumption. the second level is a more accurate ap proach where the user imports the actu al device utilization by importing the post place and route netlist (ncd) file. power estimation and management for latticeecp/ec and latticexp devices
power estimation and management  lattice semiconductor for latticeecp/ec and latticexp devices 12-2 power calculator equations the power equations used in the power calculator have the following general form: to t a l d c po w e r ( r e s o u r c e ) =total dc power of used portion + total dc power of unused portion =[dc leakage per resource when used * n resource ] + [dc leakage per resource when unused * (n total resource - n resource )] where: n total resource is the total number of resources in a device. n resource is the number of resources used in the design. the total dc power consumption for all the resources as per the design data is the sum of quiescent power and the individual dc power of the resources in the power calculator. to t a l d c po w e r ( i ccaux ) = k resource * 500 a + typical standby i ccaux where: kresource is the number of reference input i/o such as hstl/sstl. for lvds kre- source is number of inputs divided by two. i ccaux is a dc current that does not change with i/o toggle rate or temperature. typical standby i ccaux is found in the data sheet. the ac power, on the other hand, is governed by the equation: to t a l ac po w e r ( r e s o u r c e ) =k resource * f max * af resource * n resource where: n total resource is the total number of resources in a device. n resource is the number of resources used in the design. k resource is the power constant for the resource, measured in mw/mhz. f max is the maximum frequency at which the resource is running, measured in mhz. af resource is the activity factor for the resource group, as a percentage (%) of switching  frequency. based on the above equations, if we wish to calculate the power consumption of the slic e portion, it will be as fol- lows: to t a l d c po w e r ( s l i c e ) =total dc power of used portion + total dc power of unused portion =[dc leakage per slice when used * n slice ]  + [dc leakage per slice when unused * (n total slice - n slice )] to t a l ac po w e r ( s l i c e ) =k slice * f max * af slice * n slice the dc and ac power, for a dedicated block, like dsp in latticeecp devices, is governed by the following equa- tions. to t a l d c po w e r ( r e s o u r c e ) =dc leakage per resource * n resource
power estimation and management  lattice semiconductor for latticeecp/ec and latticexp devices 12-3 to t a l ac po w e r ( r e s o u r c e ) =k resource * f max * n resource where: n resource is the total number of resources in a device. k resource is the power constant for the resource, measured in mw/mhz. f max is the maximum frequency at which the resource is running, measured in mhz. starting the power calculator the user can launch the power calculator by one of the tw o methods. the first method is by clicking the power cal- culator button in the toolbar as shown in figure 12-1. figure 12-1. starting power calculator from toolbar alternatively, users can launch the power calculator by going to the tools menu and selecting the option power calculator as shown in figure 12-2.
power estimation and management  lattice semiconductor for latticeecp/ec and latticexp devices 12-4 figure 12-2. starting power calculator from tools menu the power calculator does not support some of lattices older devices. the toolbar button and menu item is only present when supported devices are selected.
power estimation and management  lattice semiconductor for latticeecp/ec and latticexp devices 12-5 starting a power calculator project once the power calculator has been started, the power calculator window appears. click on file ->menu , and select new to get to the start project window, as shown in figure 12-3. figure 12-3. power calculator start project window (create new project) the start project window is used to create a new power calc ulator project (*.pep project). three pieces of data are input in the start project window. 1. the power calculator project name by default is sa me as the project navigator project name. the name can be changed, if desired. 2. project directory is where the power calculator projec t (*.pep) file will be stored. by default, the file is stored in the main project folder. 3. input an ncd file (if available) or browse to the ncd file in a different location.
power estimation and management  lattice semiconductor for latticeecp/ec and latticexp devices 12-6 power calculator main window the main power calculator window is shown in figure 12-4. figure 12-4. power calculator main window (type view) the top pane of the window shows information about the device family, device and the part number as it appears in the project navigator. the v cc used for the power calculation is also listed. users have an option to provide the ambient temperature, and the junction temperature is calculated based on that. users can also enter values of airflow in linear feet per minute (lfm) along with heat sink to get the junction tem- perature. a table in the top part of the power calculator summarizes the currents and power consumption associ- ated with each type of power supply for the device. this also takes into consideration the i/o power supplies. in the middle pane of the window, there are two tabs: 1. power view 2. report the first tab is the power view. under this tab, the power calculator tool has an interactive spreadsheet type inter- face.
power estimation and management  lattice semiconductor for latticeecp/ec and latticexp devices 12-7 the second and third columns, which are shaded blue in the tool, provide the dc (or static) and ac (or dynamic) power consumption, respectively. in case of the i/o, there are four columns that are shaded blue. these provide the dc and ac power for i/os for the core voltage, v cc and the i/o voltage supply, v ccio. the first three rows show the quiescent power for v cc, v ccaux and v ccj. these are dc power numbers for a blank device or device with no resource utilization. some of the cells are shaded yellow in the tool. these cells are editable cells and users can type in values such as frequency, activity factor s and resource utilization. the second tab or the report tab is the summary of the power view. this report is in text format that provides the details of the power consumption. the final pane or the lower pane of the window is the log pane where users can see the log of the various opera- tions in the power calculator. figure 12-5. power calculator main window (power report view)
power estimation and management  lattice semiconductor for latticeecp/ec and latticexp devices 12-8 power calculator wizard the power calculator wizard allows users to estimate the power consumption of a design. this estimation is done before actually creating the design. the user must un derstand the logic requirements of the design. the wizard asks the user to provide these parameters and then estimates the power consumption of the device. to s t a r t t h e po w e r c a l c u l a t o r i n t h e w i z a r d m o d e , g o t o t h e file menu and select wizard . alternatively, click on the wizard button and get the power calculator - wizard window, as shown in figure 12-6. select the option create a new project and check the wizard check box in the power calculator start project window. users provide the project name and the project folder and click continue . since power is being estimate d before the actual design, no ncd file is required. figure 12-6. power calculator start project window (using the new project window wizard) the next screen, as shown in figure 12-7, allows users to select the device family, device and appropriate part number. after making proper the selections, click continue . this is shown in figure 12-7.
power estimation and management  lattice semiconductor for latticeecp/ec and latticexp devices 12-9 figure 12-7. power calculator wizard mode window - device selection in the following screens, as shown in figures 12-8-12-12, users can select further resources such as i/o types and provide a clock name, frequency at which the clock in running and other parameters, by selecting the appropriate resource using the pull-down type menu: 1. routing resources 2. logic 3. ebr 4. i/o 5. pll 6. clock tree the numbers in these windows refers to the number of cloc ks and the index corresponds to each of the clocks. by default, the clock names are clk_1, clk_2, and so on. the name of each clock can be changed by typing in the clock name text box. for each clock domain and resource users can specify parameters such as frequency, activ- ity factor, etc. users can click the create button for each clock-driven resource using the pull-down type menu. these parameters are then used in the power type view window (see figure 12-13) which can be seen by clicking finish.
power estimation and management  lattice semiconductor for latticeecp/ec and latticexp devices 12-10 figure 12-8. power calculator wizard mode window - resource specification - logic figure 12-9. power calculator wizard mode window - resource specification - ebr
power estimation and management  lattice semiconductor for latticeecp/ec and latticexp devices 12-11 figure 12-10. power calculator wizard mode window - resource specification - pll figure 12-11. power calculator wizard mode wind ow - resource specification - routing resources
power estimation and management  lattice semiconductor for latticeecp/ec and latticexp devices 12-12 figure 12-12. power calculator wizard mode window - resource specification - i/os figure 12-13. power calculator wizard mode - main window
power estimation and management  lattice semiconductor for latticeecp/ec and latticexp devices 12-13 power calculator ?creating a ne w project without the ncd file a new project can be started without the ncd file by either using the wizard (as discussed above) or by selecting the create a new project option in the power calculator start project . a project name and project directory must be provided. after clicking continue , the power calculator main window will be displayed. however, in this case there are no resources added. the power estimation row for the routing resources is always available in the power calculator. users are then asked to add more information like the slice, ebr, i/o, pll and clock tree utilization to calc ulate the power consumption. for example, to add logic resources (as shown in figure 12-14), right-click on logic >> and then select add in the menu that pops up. figure 12-14. power calculator main window adding resources this adds a new row for the logic resour ce utilization with clock domain as clk_1. similarly, other resources like ebr, i/os, plls and routing can be added. each of these resources is for ac power estimation and categorized by clock domains.
power estimation and management  lattice semiconductor for latticeecp/ec and latticexp devices 12-14 power calculator creating a new project with the ncd file if the post place and routed ncd file is available, the power calculator can use it to import the accurate information about the design data and reso urce utilization and calculate the power. w hen the power calculat or is started, the ncd file is automatically placed in the ncd file option, if available in the project directory. otherwise, the user can browse to the ncd file in the power calculator. figure 12-15. power calculator start project window with post place and route ncd file the information from the ncd file is au tomatically inserted into the correct rows and the power calculator uses the clock names from the design, as shown in figure 12-16.
power estimation and management  lattice semiconductor for latticeecp/ec and latticexp devices 12-15 figure 12-16. power calculator main window ?resource utilization picked up from the ncd file
power estimation and management  lattice semiconductor for latticeecp/ec and latticexp devices 12-16 power calculator open existing project the power calculator start project window also allows users to open an existing project. select the option open existing project and browse to the *.pep project file and click continue . this opens the existing project in similar windows as discussed above. this is shown in figure 12-17. figure 12-17. opening existing project in power calculator
power estimation and management  lattice semiconductor for latticeecp/ec and latticexp devices 12-17 power calculator ?total power the power calculator project created or opened using any of the methods discussed here would allow a user to calculate the power consumption for the device running with their design. the estimated power is indicated in the total section at the bottom of the table as shown in figure 12-18. figure 12-18. calculated power in the power calculator main window the second and third columns from the left indicate the dc (or static) and ac (or dynamic) power consumption. the total power consumption for the design can be seen in the same table. scroll down to the row labeled total . activity factor activity factor % (or af%) is defined as the percentage of frequency (or time) that a signal is active or toggling of the output. most of the resources associated with a clock domain are running or toggling at some percentage of the frequency at which the clock is running. users are required to provide this value as a percentage under the af% column in the power calculator tool.
power estimation and management  lattice semiconductor for latticeecp/ec and latticexp devices 12-18 another term used for i/os is the i/o toggle rate or the i/o toggle frequency. the af% is applicable to the pfu, routing and memory read write ports, etc. the activity of i/os is determined by the signals provided by the user (in the case of inputs) or as an output of the design (in the case of outputs). so, the rates at which i/os toggle define their activity. the toggle rate (or tr) in mhz of the output is defined as: to g g l e r a t e ( m h z ) = 1 / 2 * f max * af% users are required to provide the tr (mhz) value for the i/o instead of providing the frequency and af% in case of other resources. the af can be calculated for each routing resource, output or pfu, however it involves long calculations. the gen- eral recommendation of a design occupying roughly 30% to 70% of the device is that the af% used can be between 15% to 25%. this is an average value that can be seen most of the design. the accurate value of an af depends upon clock frequency, stimulus to the design and the final output. ambient and junction temperature and airflow a common method of characterizing a packaged devices thermal performance is with thermal resistance, 4 . for a semiconductor device, thermal resistance indicates the steady state temperature rise of the die junction above a given reference for each watt of power (heat) dissipated at the die surface. its units are c/w. the most common examples are 4 ja , thermal resistance junction-to-ambient (in c/w) and 4 jc , thermal resis- tance junction-to-case (also in c/w). another factor is 4 jb , thermal resistance junction-to-board (in c/w). knowing the reference (i.e. ambient, case or board) temperature, the power, and the relevant 4 value, the junction temperature can be calculated as per following equations. t j = t a + 4 ja * p (1) t j = t c + 4 jc * p (2) t j = t b + 4 jb * p (3) where t j , t a, t c and t b are the junction, ambient, case (or package) and board temperatures (in c) respectively. p is the total power dissipation of the device. 4 ja is commonly used with natural and forced convection air-cooled systems. 4 jc is useful when the package has a high conductivity case mounted di rectly to a pcb or heatsink. and 4 jb applies when the board temperature adja- cent to the package is known. the power calculator utilizes the 25? ju nction temperature as its basis to calculate power, per equation 1 above. users can also provide the airflow values (in lfm) and am bient temperature to get a calculated value of the junc- tion temperature based on the power estimate. managing power consumption one of the most critical design factors today is reducing system power consumption, especially for modern hand- held devices and electronics. there are several design te chniques that designers can use to significantly reduce overall system power consumption. some of these include: 1. reducing operating voltage. 2. operating within the specified package temperature limitations. 3. using optimum clock frequency reduces power consumpt ion, as the dynamic power is directly proportional to the frequency of operation. designers must determine if a portion of their design can be clocked at a lower rate that will reduce power. 4. reducing the span of the design across the device . a more closely placed design utilizes fewer routing resources for less power consumption.
power estimation and management  lattice semiconductor for latticeecp/ec and latticexp devices 12-19 5. reducing the voltage swing of the i/os where possible. 6. using optimum encoding where possible. for example, a 16-bit binary counter has, on average, only 12% activity factor and a 7-bit binary counter has an average of 28% activity factor. on the other hand, a 7-bit linear feedback shift register could toggle as much as 50% activity factor, which causes higher power consumption. a gray code counter, where only one bit changes at ea ch clock edge, will use the least amount of power, as the activity factor would be less than 10%. 7. minimize the operating temperature, by the following methods:  a. use packages that can better dissipate heat. for example, packages with lower thermal impedance.  b. place heat sinks and thermal planes around the device on the pcb.  c. better airflow techniques using mechanical airflow guides and fans (both system fans and device mounted fans). power calculator assumptions following are the assumptions made in the power calculator: 1. the power calculator tool is based on equations with constants based on room temperature of 25c. 2. the user can define the ambient temperature (ta) for device junction temperature (tj) calculation based on the power estimation. tj is calculated from user-entered ta and power calculation of typical room tem- perature. 3. the i/o power consumption is based on output loading of 5pf. users have ability to change this capacitive loading. 4. the current version of the power calculator allows users to get an estimate of the power dissipation and the current for each type of power supplies, that are v cc, v ccio, v ccj and v ccaux. for v ccaux, only static i ccaux values are provided in the calculator. additional v ccaux contributions due to differential output buffers, differential input buffers and reference input buffers must be added per pair for differential buffers or per pin for reference input buffers according to the user's design. see the equation given in this technical note for total dc power (i ccaux ). 5. the nominal v cc is used by default to calculate the power consumption. users can choose a lower or higher v cc from a list of available values. for example, the nominal v cc of 1.2v is used by default for the latticeecp/ec and latticexp families of devices. 6. the current versions also allows users to enter an airflow in linear feet per minute (lfm) along with the heat sink option to calculate the junction temperature. 7. the default value of the i/o types for the latticeec and latticexp devices is lvcmos12, 6ma. 8. the activity factor (af) is defined as the toggle rate of the registered output. for example, assuming that the input of a flip-flop is changing at every clock cycle, 100% af of a flip-flop running at 100mhz is 50mhz.
power estimation and management  lattice semiconductor for latticeecp/ec and latticexp devices 12-20 revision history technical support assistance hotline: 1-800-lattice (north america) +1-503-268-8001 (outside north america) e-mail: techsupport@latticesemi.com internet: www.latticesemi.com date version change summary june 2004 01.0 initial release. july 2004 01.1 provided additional description of the assumptions used in the power model. october 2004 01.2 updated screen shots for isplever 4.1. february 2005 02.0 added support for latticexp family throughout. added dc and ac power for a dedicated block like dsp for latticeecp devices. may 2005 02.1 updated the power supply sequencing and hot socketing section. updated the total dc power consumptio n to be sum of quiescent and the dc power of resources. november 2006 02.2 added calculation of i ccaux in power calculator equations section. september 2007 02.3 document title changed to ?ower estimation and management for lat- ticeecp/ec and latticexp devices?
power estimation and management  lattice semiconductor for latticeecp/ec and latticexp devices 12-21 appendix a. power calculator project example this example assumes that you have post place and rout e ncd netlist in the design fo lder. click on file > new or click on the new project button. the ne w project window will open as shown below. the various fields are filled in automatically with the proj ect name the same as the is plever project name and the directory also the same as the design folder. if the post place and route ncd file is available, the ncd file field is also automatically filled. users can also browse to the particular location to change the folder where they wish to create the power calculator project. users can also browse to the ncd file in case it is not available at the root design folder. click finish. this opens the main power ca lculator project window, as shown below. note that the project window above impo rts all the resource utilization informat ion from the ncd file. it does not, however, include information such as the frequency at whic h the design is operating or the activity factors at which the various components are togg ling. this information is to be filled in by the user. the top portion of the power calculator window shows information such as the device family and device being con- sidered for power calculation, the v cc, which is by default the nominal v cc for the device, and operating conditions. operating conditions users can enter include the ambient temperature, and heat sink available. users can also select the air flow values. there is a grayed box for junction temperature that show s tj based on the given conditions and the calculated power. if we assume the design is running at 100 mhz with a 10% activity factor, the final power calculator will be as shown below.
power estimation and management  lattice semiconductor for latticeecp/ec and latticexp devices 12-22
www.latticesemi.com 12-1 tn1053_02.4 september 2008 technical note tn1053 ?2008 lattice semiconductor corp. all lattice trademarks, registered trademarks, patents, and disclaimers are as listed at www .latticesemi.com/legal. all other brand or product names are trademarks or registered trademarks of their respective holders. the specifications and information herein are subject to change without notice. introduction the memory in latticeecp and latticeec fpgas is bu ilt using volatile sram. when the power is removed, the sram cells lose their contents. a supporting non-volatile memory is required to configure the device on power- up and at any time the device needs to be updated. the latticeecp/ec devices support a sysconfig interface that provides multiple configuration modes as well as th e dedicated ispjtag port and boundary scan. the differ- ent programming modes are listed below. ?pi ?pix master serial ?lave serial ?aster parallel ?lave parallel ispjtag (1149.1 interface) this technical note covers all the configuration options available for latticeecp/ec devices. configuration pins the latticeecp/ec devices support two types of syscon fig pins, dedicated and dua l-purpose. the dedicated pins are used exclusively for configuration; the dual-purpo se pins are available as extra i/o pins. if a dual-purpose pin is to be used both for configuration and as a general purpose i/o the user must adhere to the following: ?he general purpose i/o (gpio) must maintain the same direction as it has during configuration, in other words, if the pin is an input during configuration it must remain an input as a gpio, if an output during configuration it must remain an output as a gpio, if a bi-directional it must remain a bi-directional as a gpio. the i/o type must remain the same, in other words if the pin is a 3.3v cmos pin (lvcmos33) during configura- tion it must remain a 3.3v cmos pin as a gpio. ?he persistent option must be set to off. the persistent option can be accessed by using the preference editor in isplever . ?he user is responsible for insuring that no internal or external logic will interfer e with device configuration. also note, if a parallel configuration mode is not being used then one or both of the parallel port chip selects (csn, cs1n) must be high or tri-state during configuration. programmable options control the dual-purpose configuration pins. these options are controlled via a preference in lattice isplever software, or as an hdl source file attribute. the latticeecp/ec devices also support the ispjtag port for configuration, including transparent read back and jtag testing. the following sections describe the functionality of the syscon fig and jtag pins. table 12-1 is provided for reference. latticeecp/ec sysconfig usage guide
12-2 lattice semiconductor latticeecp /ec sysconfig usage guide table 12-1. configuration pins for latticeecp/ec devices dedicated control pins the following is a description of the latticeecp/ecs d edicated sysconfig pins used for controlling configuration. cfg[0:2] the configuration mode pins cfg[0:2] are input pins. they are used to select the configuration mode. depending on the configuration mode selected, di fferent groups of dual-pur pose configuration pins will be activated on power- on-reset or when the programn pin is driven low. programn the programn pin is an input to the device used to initiate a programming sequence. a high to low signal applied to the pin sets the device into configuration mode. the programn pin can be used to trigger program- ming other than at powering up. if the device is using jtag, the device will ignore the programn pin until the device is released from the jtag mode. initn the initn pin is a bidirectional open drain control pin. it is capable of driving a low pulse out as well as detecting a low pulse driven in. when the programn pin is driven low, or after the internal power-on-reset signal is released during power-up, the initn pin will be driven low to reset the configuration circuitry and any external prom. the configuration memory will be cleared and the initn pin will remain low as long as the programn pin is low. to delay configuration the initn pin can be held low externally. the device will not enter configuration mode as long as the initn pin is held low. toggling the pr ogramn pin in serial and parallel programming modes will initiate the configuration se quence and reset the initn pin. for spi mode , power cycling the device will initiate the reconfiguration sequence. during configuration, the initn pin be comes an error detection pin. it will be driven low whenever a configuration error occurs. done the done pin is a bidirectional control pin. it can be configured as an open drain or active drive control pin. the done pin will be driven low when the device is in co nfiguration mode and the inte rnal done bit is not pro- grammed. when the initn and programn pins are high and the done bit is programmed, the done pin will be pin(s) description default pin function mode used cfg[0:2] input dedicated all programn input dedicated all initn bi-directional open drain dedicated all done 1 bi-directional dedicated all cclk output or input dedicated m aster = output, slave = input di/csspin input/outp ut with weak pull-up serial/spi dout/cson output serial/parallel csn input parallel cs1n input parallel writen input parallel busy/sispi output parallel/spi d[0:7]/spid[7:0] input or output parallel/spi tdi input with pull-up dedicated jtag tdo output dedicated jtag tck input with hysteresis, no pull-up dedicated jtag tms input with pull-up dedicated jtag 1. defaults to open drain with an internal pull-up.
12-3 lattice semiconductor latticeecp /ec sysconfig usage guide released. an open drain done pin can be held low exte rnally and, depending on the wake-up sequence selected, the device will not become functional until the done pin is released. cclk the cclk pin is a bi-directional pin. the direction depends on whether a master mode or slave mode is selected. if a master mode is selected when the cfg pins are sa mpled, the cclk pin will beco me an output pin; otherwise cclk will become an input pin. if the cclk pin becomes an output pin, the internal programmable oscillator is connected to the cclk and is driven out to slave device s. cclk will stop 120 clocks cycles after the done pin is brought high and the device wake-up sequence completed. the extra clock cycles are provided to ensure that enough clock cycles are prov ided to wake up other devices in the chain. when stopped , cclk will become tri- stated as an input. the cclk will restart on the next co nfiguration initialization se quence, such as the pro- gramn pin being toggled. the mcclk_freq parameter controls the cclk master frequency. see the master clock selection section of this docume nt for more information. for serial and parallel slave modes, it is recom- mended that cclk is continuously active during configuration and error recovery sequence. dual-purpose sysconfig pins the following is a list of dual-purpose sysconfig pins. if an y of these pins are used for configuration and user i/o, the user must adhere to the requirements listed above in the section entitled configuration pins. di/csspin the di/csspin dual-purpose pin is designated as di (data input) for all of the serial bit stream configurations, such as slave serial. di has an internal weak pull up. in either spi or spix mode, the di/c sspin becomes the dedicated chip select output to drive the spi flash chip select. csspin will drive high when the latticeecp/ec device is not in the process of configuratio n through the spi port. d[0:7]/spid[7:0] the d[0:7] pins support both the spi mode and parallel configuration modes. in the parallel configuration modes, the d[0:7] pins are tri-stated bi-directional i/o pins used for parallel data write and read. a byte of data is driven into or read from these pins. when the wr iten signal is low and the csn and cs1n pins are low, the d[0:7] pins will become an input. when the writen signal is driven high and the csn and cs1n pins are low, the pins become output pins for reading. the persistent preference must be set to support read back to preserve the d[0:7] pins so the device can monitor for the read back instruction. the csn and cs1n pins will enable the data d[0:7] pins. in spi mode, the d[0:7]/spid[7:0] pins become individual inputs for one or more spi memory outputs. if more than one spi memory is used, spi memory zero output will be wired to d7/spi d0, spi memory one output will be wired to d6/spid1, the data fed to these pins will be interleaved and then sent to the internal configuration engine. for spix mode, the d[0:7]/spi d[7:0] pins will also support sampling of exte rnal resistors for dete rmining the read op code. dout/cson the dout/cson pin is an output pin and has two purposes. for serial and parallel configuration modes, when the bypass mode is selected, this pin will become dout. when the device in bypass becomes fully configured, a bypass instruction will be executed and th e data on di or d[0:7] will then be presented to the do ut pin through a bypass register to serially pass the dat a to the next device. in a parallel c onfiguration mode d0 will be shifted out first followed by d1, d2, and so on. for parallel configuration modes, when the flow_through mode is selected, this pin will become the chip select out (cson). in the flow_through mode, when the device is fully configured, the flow through instruction will be executed and the cson pin will be driv en low to enable the next device chip select pin. the dout/cson bypass register will driv e out a high upon power up and contin ue to do so till the execution of the bypass/flow through instruction within the bit stream.
12-4 lattice semiconductor latticeecp /ec sysconfig usage guide csn and cs1n both csn and cs1n are active low control input pins. when csn or cs1n are high, d[0:7] and busy pins are tri-stated. when the csn and cs1n pi ns are both high, they will reset the flow-through/bypass register. csn and cs1n are interchangeable when contro lling the d[0:7], initn and busy pins. writen the writen pin is an active low control input pin. the wr iten pin is used to determine the direction of the data pins d[0:7]. the writen pin is driven low when a byte of data is to be shifted into the device during programming. the writen pin will be driven high when data is to be read from the device through a parallel configuration mode. the writen pin is not used for serial configuration modes. busy/sispi the busy/sispi pin is a dual function pin. in the parallel configuration mode, the busy pin is a tri-stated output. the busy pin will be driven low by the device only when it is ready to receive a byte of data at d[0:7] pins or a byte of data is ready for reading. the busy pin can be used to support asynchronous peripheral mode. this is to acknowledge that the device might need extra time to execute a command. in the spi configuration modes, the busy/sispi pin becomes an output pin that drives read control data back to the spi memory. ispjtag pins the ispjtag pins are the standard ieee 1149.1 tap pins . the ispjtag pins are dedicated pins and are always accessible when the latticeecp/ec device is powered up. in addition, the dedicated sysconfig pins such as the done pin as described in the dual-purpose control pins se ction of this document are also available when using latticeecp/ec ispjtag pins. the dedicated sysconfig pi ns are not required for jtag operation, but may be useful at times. tdo the test data output pin is used to shift out serial test instructions and data. when tdo is not being driven by the internal circuitry, the pin will be in a high impedance state. tdi the test data input pin is used to shift in serial test instruction and data. an internal pull-up resistor on the tdi pin is provided. the internal resistor is pulled up to v ccj. tms the test mode select pin cont rols test operations on the ta p c o n t r o l l e r. o n t h e fa l l i n g edge of tck, depending on if tms is high or low, a transition will be made in the tap controller state machine. an in ternal pull-up resistor on the tms pin is provided. the internal resistor is pulled up to v ccj. tck the test clock pin tck provides the clock to run the tap controller, loading and reloading the data and instruction registers. tck can be stopped in either the high or low state and can be clocked at frequencies up to the frequency indicated in the device data sheet. the tck pin supports hysteresis, with the value shown in the dc parameter table of the latticeecp/ec family data sheet. optional trst the jtag test reset pin trst in not supported in the latticeecp/ec devices. v ccj jtag v cc supplies independent power to the jtag port to allow chaining with other jtag devices at a common voltage. configuration and jtag pin physical description all of the control pins and programming bus default to lvcmos. the bank v cco pin determines the voltage level of the sysconfig pins. the jtag pin voltage levels are determined by the v ccj pin voltage level. controlling the
12-5 lattice semiconductor latticeecp /ec sysconfig usage guide jtag pin by v ccj allows the device to support different jtag ch ain voltages. for further jtag chain questions, see in-system programming design guidelines for ispjtag devices, available on the lattice web site at www.lattices- emi.com . configuration modes the latticeecp/ec devices support many different types of configuration mode s utilizing either serial or parallel data inputs. on power-up or upon driving the programn pin low, the cfg[2:0] pins are sampled to determine the mode the devices will be configured in. table 12-2 lists the mode, cfg[0:2] state and the software config_mode parameters. the following subsections br eak down each configuration mode individually. table 12-2. configuration modes for the latticeecp/ec devices configuration options several configuration options are available for each configuration mode. when daisy chaining multiple fpga devices, an overflow option is provided for serial and parallel configuration modes. by setting the proper parameter in the lattice design software, the selected configuration options are set in the generated bit stream. as the bit stream is loaded into the device, the selected configuration options will take effect. these options are described in the following sections and are software selectable by the lattice design software. bypass option the bypass option is used in parallel and serial device da isy chains. when the device has completed configuration and the bypass option preference is se lected, data coming into the device conf iguration port will overflow serially out of dout to the di of the next slave serial device. the bypass configuration selection is supported in the config_mode selections as shown in table 12-2. in serial configuration mode, the bypass option connects t he di to dout, via a bypass register upon completion of configuration. the bypass register is init ialized with a ? at the beginning of configuration. in parallel configuration mode, the bypass option causes the data incoming from d[0:7] to be serially shifted to dout after completion of configuration. the serialized byte wide register will be shifted to dout through the bypass register . d0 of the byte wide data will be shifted out first and followed by d1, d2, and so on. once the bypass option starts, the device will remain in bypass until the wake-up sequence completes. one option to get out of the bypass option is to toggle csn and cs1n, which will ac t as a reset signal. refer to the master parallel mode section of this document for more details. flow though option the flow through option pulls the cson pin low when the device has completed its configuration. the flow through option can be implemented with either master or slave parallel configuration modes as referenced in mode cfg[2] cfg[1] cfg[0] config_mode parameter spi master 0 0 0 spi spix master 0 0 1 spix master serial (bypa ss off) 1 0 0 master_serial master serial (bypass on )100master_serial_bypass slave serial (bypass off) 1 0 1 slave_serial slave serial (bypass on) 1 0 1 slave_serial_bypass master parallel (flow through off) 1 1 0 master_parllel master parallel (flow through on) 1 1 0 master_parllel_flowthr slave parallel 1 1 1 slave_parallel slave parallel (bypass on) 1 1 1 slave_parallel_bypass slave parallel (flow through on) 1 1 1 slave_parallel_flowthr ispjtag (1149.1 interface) x x x any config_mode or none1
12-6 lattice semiconductor latticeecp /ec sysconfig usage guide ta bl e 1 2 - 2 . t h e f l o w t h r o u g h o p t i o n w i l l drive out a static low signal on th e cson pin. the fl ow through option will also tri-state the device d[0:7] an d busy pins when configuration is comp leted on the device in order to not interfere with the next daisy chained device to be configured. once the flow through option starts, the device will re main in flow through until the wake-up sequence com- pletes. one option to get out of the flow through option is to toggle csn and cs1n, which will act as a reset sig- nal. refer to the master pa rallel mode section of this document for more details. master clock when the user has determin ed that a device will be a master, the cc lk will become an output clock with the fre- quency set by the user. until early in the configuration, the device is configured with a default master clock fre- quency of 2.5mhz. one of the first configuration bits set will be the mast er clock. see the device-specific section of the cfg[0:2] descriptions. the user can select which master clock frequency to use by setting the mcclk_freq preference in the lattice design software. the mcclk_freq preference will set the frequency of the master clo ck if selected by the config_mode and the cfg[0:2] pins. default is the lowest frequency supported by the device. the user can select a different clock speed, which will take effect just afte r configuration starts or if the device is reconfigured prior to power down. configuration time is computed by dividing the maximum configuration bits to be loaded, as given in figure 12-7, by the master clock frequency. see the latticeecp/ec fpga family data sheet for mclk_freq selections. spi mode the latticeecp/ec devices offer a direct connection for me mories that support the spi standard. by setting the configuration pins cfg[0:2] = b?00, the latticeecp/ec devices will configur e using the spi interface. the spi interface offers several combinations of memory to fpga. 1. one fpga, one spi flash 2. multiple fpga, one spi flash 3. one fpga, two spi flash 4. multiple fpga, multiple spi flash is not allowed because the circuitry to support serialization of multiple spi flash through dout is not available. for a more detailed discussion the ec/ecp to spi interface requirements please refer to tn1078. one fpga, one spi flash the simple spi application is one spi flash serial connected to the spid0 of the latticeecp/ec devices in spi mode, as shown in figure 12-1. mode cfg[2] cfg[1] cfg[0] config_mode parameter spi master 0 0 0 spi
12-7 lattice semiconductor latticeecp /ec sysconfig usage guide figure 12-1. simple interface for fpga bootup in spi mode multiple fpga, one spi flash with a sufficiently large spi flash, mu ltiple fpgas can be configured as shown in figure 12-2. the first fpga is configured in spi mode, the following fpgas are configured in slave serial mode. figure 12-2. multiple fpgas configured by one spi flash one fpga, two spi flash the latticeecp/ec devices support two flash to configure a single device as shown in figure 12-3. the two flash option is supported to allow use of smaller spi flash devices to configure a larger fpga. lattices ispvm system software divides the configuration bit stream evenly am ong each selected spi memory. as the latticeecp/ec device starts to download from the two spi memories, the data streams feed into spid0 and spid1 in a parallel fashion and are reassembled internally. lattice fpga spi cclk programn initn done spid0 cfg2 cfg1 cfg0 spi3 flash sck cs csspin sispi si so lattice fpga spi cclk initn programn done initn programn done initn programn done spid0 cfg2 cfg1 cfg0 spi flash sck cs csspin di di sispi si so lattice fpga slave serial cclk cfg0 cfg2 cfg1 dout dout dout lattice fpga slave serial cclk cfg0 cfg2 cfg1
12-8 lattice semiconductor latticeecp /ec sysconfig usage guide figure 12-3. two spi flash spix mode not all spi memories are the same. a read operation code is required to be fed to the spi flash at the time config- uration starts. for many, that op code is 03 hex. for other memories that require a different read operation code other than 03 hex, the spix format is supported. in spix mode the read operation code is coded into the spid[7:0] pins through the use of pull-ups and pull-downs as shown in figure 12-4. when configuration begins in the spix mode the spid[7:0] pins are sampled and the corresponding sampled read operation co de will be fed to the spi device so the fpga can begin read back. all combinations of spi flash and latticeecp/ec fpgas ar e valid in the spix mode as well. the only addition is the pull-up and pull-down resistors placed on spid[7:0] as shown in figure 12-4. mode cfg[2] cfg[1] cfg[0] config_mode parameter spix master 0 0 1 spix lattice fpga spi cclk programn spid0 cfg2 cfg1 cfg0 spi flash 0 sck cs csspin sispi si so spi flash 1 sck cs si so spid1 spid[2:7] nc
12-9 lattice semiconductor latticeecp /ec sysconfig usage guide figure 12-4. simple spix example with op code resistors master serial mode configuration of the latticeecp/ec devi ce in master serial mode will drive the cclk signal out to the slave serial devices in the chain and the sprom that will provide the serial bit stream. the device acce pts the data at di on the rising edge of cclk. the master serial device starts driving cclk after initn transitions from low to high and continues to drive the cclk until the external done pin is driven high and one hundred plus clock cycles have been generated. the cclk frequency on power-up defaults to 2.5mhz. the master clock frequency default remains until the new clock frequency is loaded from the bit stream into the device. if a master serial device is daisy chained with other serial devices, once the master device is fully configured, the bypass option will take effect. as additiona l data is presented to the master di pin, the data will be bypassed to the next device on the dout pin. figure 12-5 shows a master serial daisy chain. the daisy chain method allows multiple lattice fpga devices to be configured together. the first device in the daisy chain operates in master serial mode with the bypass option, while the other lattice fpga devices in the daisy chain operate in slave serial mode. mode cfg[2] cfg[1] cfg[0] config_mode parameter master serial (no overflow option) 1 0 0 master_serial master serial (bypass on )100master_serial_bypass lattice fpga spix cclk programn initn done spid0* cfg2 cfg1 cfg0 spi flash (with op code e8) sck cs csspin sispi si so spid7 10k spid6 10k spid5 10k spid4 10k spid2 10k spid1 10k spid0* *spid0 connects to so and resistor. 10k spid3 10k
12-10 lattice semiconductor latticeecp /ec sysconfig usage guide figure 12-5. master and slave serial daisy chained slave serial mode slave serial mode is the default mode for configuration in the lattice design software. in slave serial mode the cclk pin becomes an input and will receiv e the incoming clock. the device acce pts the data at di on the rising edge of cclk. after the device is fu lly configured, if the bypa ss option has been set, data sent to di will be pre- sented to the next device on the dout pin as shown in figure 12-5. master parallel mode configuration using master parallel mode is used to work together with a parallel port prom without additional external logic. when master para llel mode is chosen, the device will generate cclk as specified by the mclk_freq preference. the cclk signal is used to provide a programming clock to the prom and slave devices. data is transferred byte wide to the d[0:7] pins. the writen pin must be held low to write to the device. if an overflow option is not selected, the csn and cs1n pins must be driven low to enable configuration and read back. the master parallel mode can support two types of overflow, bypass and flow through. if the bypass option is set, the data presented to the d[0:7] pins will be serialized and bypassed to t he dout pin when the configuration is complete. if the flow through option is set, upon completion of the configur ation, the csout signal will drive the following parallel mode device chip se lect as shown in figure 12-6. if either overflow option is selected, the csn or cs1n pins can be toggled to reset the master parallel device out of the overflow option, otherwise both chip select pins should be held low to keep the device active for configuration. mode cfg[2] cfg[1] cfg[0] config_mode parameter slave serial (no overflow option) 1 0 1 slave_serial (default) slave serial (bypass on) 1 0 1 slave_serial_bypass mode cfg[2] cfg[1] cfg[0] config_mode parameter master parallel (no overflow option) 1 1 0 master_parllel master parallel (bypass on) 1 1 0 master_parllel_bypass master parallel (flow through on) 1 1 0 master_parllel_flowthr lattice fpga master serial cclk 10k programn initn done di di dout dout cfg2 cfg1 cfg0 lattice fpga slave serial cclk programn initn done cfg2 cfg1 cfg0 prom data clk reset/oe cs
12-11 lattice semiconductor latticeecp /ec sysconfig usage guide figure 12-6. master and slave parallel daisy chain slave parallel mode in slave parallel mode, a host system sends the configuration data in a byte wide stream to the device. the cclk, csn, cs1n and the writen signal are provided by the ho st system such as a master parallel mode device as shown in figure 12-6. the slave parallel configuration mode allows multiple devices to be chained in parallel. to support asynchronous configuration, where the host may provide data faster than the fpga can handle it, the slave parallel mode can use the busy signal. by driving the busy signal high, the slave parallel device tells the host to pause sending data. mode cfg[2] cfg[1] cfg[0] config_mode parameter slave parallel (no overflow option) 1 1 1 slave_parallel slave parallel (bypass on) 1 1 1 slave_parallel_bypass slave parallel (flow through on) 1 1 1 slave_parallel_flowthr lattice fpga master parallel cclk programn initn done d[0:7] cfg2 cfg1 cfg0 cs1n writen csn prom d[0:7] clk reset/oe cs lattice fpga slave parallel cclk programn initn done d[0:7] cfg2 cfg1 cfg0 cs1n writen csn cson
12-12 lattice semiconductor latticeecp /ec sysconfig usage guide figure 12-7. asynchronous usage of slave parallel configuration mode figure 12-7 shows the asynchronous peripheral write se quence using the bypass option. to send configuration data to a device, the writen signal has to be asserted. during the write cycle, the busy signal provides hand- shaking between the host system and the latticeecp/ec device. when the busy signal is low, the device is ready to read a byte of data at the next rising edge of cclk. the busy signal is set high when the device reads the data and the device requires extra clock cycles to process the data. the csn or cs1n signals can be used to temporarily stop the write process by setting either to a high state if the host system is busy. the latticeecp/ec device will resu me the configuration when the both csn and cs1n sig- nals are set low again. ispjtag mode the latticeecp/ec device can be configured through the is pjtag port. the jtag port is always on and available, regardless of the configuration mode selected. the none mode (1) can be selected in the lattice design software to say that the jtag port will be used exclusively, but is not required. isc 1532 configuration through t he jtag port conforms to the ieee 1532 standar d. the boundary scan ce lls take control of the i/os during any 1532 mode instruction. the boundary scan cells can be set to a pre-determined values when- ever using the jtag 1532 mode. once c onfiguration is complete, an internal done bit is se t, which will release the done pin. transparent read back the ispjtag transparent read back mode allows the user to read the content of the device while the device remains in a functional state. the i/o and non-jtag config uration pins remain active during a transparent read back. the device will enter the transpare nt read back mode through a jtag instruction. the user must ensure mode cfg[2] cfg[1] cfg[0] config_mode parameter ispjtag (1149.1 interface) x x x any config_mode or none1 lattice fpga slave parallel (asynchronous) cclk programn initn done d[0:7] cfg2 cfg1 cfg0 cs1n writen csn dout dout busy lattice fpga slave serial cclk programn initn done di cfg2 cfg1 cfg0 d[0:7] initn done clock programn writen busy
12-13 lattice semiconductor latticeecp /ec sysconfig usage guide that user mode read/write operations from/to the ebr and distributed ram do not interfere with the transparent read back. boundary scan and bsdl files the latticeecp/ec bsdl files can be found on the latt ice semiconductor web site. the boundary scan ring will cover all the i/o pins, dedicated and dual-purpose sysc onfig pins. the sysconfig pi ns can be observed using the boundary scan. configuration flow the writing to the configuration sram memory can generally be split into three phases. 1. clear the configuration memory.  after power-up or toggling the programn pin low, the configuration memory is cleared automatically. the initn pin is driven high by the ec/ecp device when th e device has finished clearing the configuration memory and done bit. the initn pin can also be driven externally by the user to delay the configuration process. 2. load configuration data into the memory.  loading the bit stream from di or d[0:7], depending on the selected configuration mode. the initn pin is set to low on any error and busy can be used to delay configuration 3. wake up the device. the wake-up sequence puts the device into functional mode after full configuration. choosing a proper wake-up sequence is important, to prevent contention. the following sections describe the three steps to configure latticeecp/ec devices. clearing the configuration memory tw o p o s s i bl e m e t h o d s c a n c l e a r t h e i n t e r n a l c o n f i g u r a t i o n memory of the latticeecp/ec device. the first is when the device powers up, the second is by toggling the programn pin. power-up sequence on power-up the device tri-states all the i/os, sets them to lvcmos type, and sets the initn and done pin to low. the device prepares for configuration by resetting the configuration circuitry, clearing the done bit and crc regis- ters. the device clears the configuration memory, including i/o options such as pci clamp, and gets ready to start configuration. the jtag port is ready to be used as soon as the device clears the configuration memory. after the device clears the por, the device samples the configuration mode pins cfg[0:2] and recovers the rele- vant configuration pins acco rding to the configuration mode pin settings . the device will then release the initn pin if the programn pin is high. if a master mode is selected, the device starts driving the master clock out of the cclk pin. the initn pin can be driven low externally to delay device configuration. once the initn pin goes high, the device is ready for configuration to start. toggling the programn pin after a device is powered up, toggli ng the programn pin will initiate a se quence to prepare the latticeecp/ec device for re-configuration from an external memory source. upon driving the programn pin low, the initn and done pins will drive low, the memory will start clearing, and the i/o pins will become tri-stated and pulled up to v ccio. upon driving the programn pin high, the cfg[0:2] are sampled to determine the configuration mode to imple- ment as well as which configuration pins will be used for co nfiguration. if a master mode is selected, cclk will be driven. the initn pin will be released on ce the configuration memo ry is cleared and the programn pin is driven high. holding the initn pin low will delay configuration. configuration will begin as soon as the initn pin is released and pulled high.
12-14 lattice semiconductor latticeecp /ec sysconfig usage guide loading the configuration memory once the programn and initn pins are high, configurat ion can begin. depending on the configuration mode selected, data will be accepted on either the di or d[0:7] pins on the rising edge of cclk. if an error occurs at any time during transfer of the data, the initn pin will be dr iven low by the latticeecp/ec device. for handshaking configurations, the csn or cs1n pin can be driven high to pause configuration and stop the master clock. the busy pin can be used by the latticeecp/ec device to pause the configuration host ec/ecp. once the full data stream has been shifted in a crc calculation done during configuration w ill be compared to the bit stream crc. if they match, the device will either procee d to the wake-up seq uence or overflow the next data to the next device. if the crc does not match, then the initn pin will be driven low and th e device will remain in configuration mode. wake up the device when configuration is complete, the device will wake up in a predictable fashion. the following selections deter- mine how the device will wake up. two synchronous wake -up processes are available. one automatically wakes the device up when the internal done bit is set even if th e done pin is held low externally. the other waits for the done pin to be driven high externally before starting the wake-up process. the done_ex preference determines if the synchronous wake up will be cont rolled by the external driving of the do ne pin or ignores the external driving of the done pin. table 12-3 provides a list of the wake-up sequences supported by the devices. table 12-3. wake-up sequences suppor ted by latticeec synchronous to internal done bit sequence phase t0 phase t1 phase t2 phase t3 default goe gsr, gwdis done 1done goe, gwdis, gsr 2done goe, gwdis, gsr 3done goe, gwdis, gsr 4done goe gwdis, gsr 5done goe gwdis, gsr 6done goe gwdis gsr 7done goe gsr gwdis 8donegoe, gwdis, gsr 9done goe, gwdis, gsr 10 done gwdis, gsr goe 11 done goe gwdis, gsr 12 done goe, gwdis, gsr 13 goe, gwdis, gsr done 14 goe done gwdis, gsr 15 goe, gwdis done gsr 16 gwdis done goe, gsr 17 gwdis, gsr done goe 18 goe, gsr done gwdis 19 goe, gwdis, gsr done 20 goe, gwdis, gsr done 21 (default) goe gwdis, gsr done 22 goe, gwdis gsr done 23 gwdis goe, gsr done 24 gwdis, gsr goe done 25 goe, gsr gwdis done
12-15 lattice semiconductor latticeecp /ec sysconfig usage guide if the latticeecp/ec device is the only device in the chain, or the last device in a chain, the wake-up process should be initiated by the completion of the configuration. once the configuration is complete the internal done bit will be set and the wake-up process will begin. synchronous to external done signal the done pin can be selected to delay wake up. if do ne_ex is true the wake-up sequence will be delayed until the done pin is driven high externally, then the device will follow the selected wake-up sequence. wake-up clock selection the wake-up sequence is synchronized to a clock source, the user can select the clock source for wake up. the clock sources are cclk, tck and user clock. the default cl ock is tck if using ispjta g, and cclk if using sys- config. the user clock is chosen at the time of design. the user can select any of the clk pins of the device or a net (routing node) as the us er clock source. the wakeup_clk shall default to cclk or tck. read back read sequence to read the configuration memory data or register contents back, writen is first set to low to send the read instruction into the device. the device will read in the command from the host and execut e the command once read in. if the latticeecp/ec device cannot have the data ready by the next clock cycle, it will drive the busy pin high. when busy is high, the device will continue to execute th e command regardless of the state of the csn or cs1n pins. the device will drive the busy pin low when the data is ready but will not drive th e d[0:7] until the csn and cs1n pins are pulled low by the host. the writen pin sh ould be pulled high after sending in the command. the csn, cs1n and writen signals are latc hed and the device will switch to read mode on the rising edge of cclk. if the latticeecp/ec device needs more than one clock cycle to switch the bus around, busy will be kept high until the d[0:7] is ready. as in the write sequence, csn and cs1n signals can be us ed to temporarily pause the read sequence in case the host system is busy. the data is read at the next rising cclk edge, after csn and cs1n pins are set to low and the busy pin is low. transparent read back using the slave parallel mode for read back, the user i/os will remain functional. the slav e parallel port pins must be retained in order to allow read back by setting the persistent preference to on. cclk becomes input only. the user must ensure that user mode read/write operati ons from/to the ebr and distributed ram do not interfere with the transparent read back. configuration mode read back read back can also be done with the latticeecp/ec device in configuration mode. only the slave parallel mode is supported for configuration read back. by driving the wr iten pin high, the slave parallel port will watch for the read back request from the host device. software control in order to control the configuration of the latticeecp/ec device beyond the default settings, software preferences can be used. table 12-4 is a list of the preference, the default settings and the section more information about the preference can be found.
12-16 lattice semiconductor latticeecp /ec sysconfig usage guide table 12-4. latticeecp/ec device preference list persistent when using the sysconfig port to perform transparent readback the persistent pref erence must be set to on, this reserves the dual-purpose pins for configuration. persistent = on prevents the user and the software fitter from using any of the dual-purpose pins as general purpose i/o. configuration mode the device knows which physical port will be used by readin g the highs and lows wired to the cfg[0:2] pins, how- ever sometimes software needs to know the setting of th e cfg pins as well. the configuration mode serves this purpose. the fitter will be pr evented from using the i/o pi ns associated with the select ed configuration mode, how- ever the user may assign thes e pins (a warning will be generated by the software). if the user requires these pins as general purpose i/o they must adhere to the requirements listed above in the configuration pins section. normally, proper selection of the configuration mode is not strictly required. for pin reservation, for instance, the user can place prohibits in the source code to insure that the fitter doesnt use the configuration pins as general purpose i/o. however, if multiple devices are being configured from one configuration device then the configura- tion mode must match the cfg pins. this is required be cause the overflow option (flow through or bypass) is determined by the configuration mode (in software) and the cfg pins (in hardware). note that if either overflow option is selected, then the done_ex and wake_up selections will be changed to correspond. see table 12-5 for details on the overflow option defaults. for more information on the overflow options, see the configuration options section of this document. table 12-5. overflow option defaults done open drain the done_od?preference allows the user to configur e the done pin as an open drain pin. the done_od? preference is only used for the done pin. when the done pin is driven low, internally or externally, this indicates that programming is not complete and the device is not ready for wake up. once configuration is complete, with no errors, and the device is ready for wake-up, the done pin must be driven high. for other devices to be used to con- trol the wake-up process an open drain configuration is needed to avoid contention on the done pin. the ?one_od?preference for the done pin defaults to on . the done_od prefer ence will be automatically set to the default if the done_ex preference is set to on. see table 12-6 for more information on the relationship between done_od and done_ex. preference (preference) de fault setting (all settings) persistent on [off, on] config_mode slave_serial (see table 12-2) done_od on [on, off] done_ex off [off, on] mcclk_freq lowest frequency (see device tables) config_secure off [off, on] wake_up 21 (done_ex = off) [1:25] 4 (done_ex = on) [1:7] compress_config off (off, on) overflow option (bypass, flow through) done_ex preference wake_up preference off off (default) default 21 (user selectable 1 through 25) off on default 21 (user selectable 1 through 25) on on (automatically set by software) default 4 (user selectable 1 through 7)
12-17 lattice semiconductor latticeecp /ec sysconfig usage guide done external the latticeecp/ec device can wake up on its own after the done bit is set or wait for the done pin to be driven externally. the done_ex preference will determine if the wake-up sequence is triggered by an external done sig- nal. the done_ex preference shall take a user entered on or off. on if the user wants to delay wake-up until the done pin is driven high by an ex ternal signal and synchro nous to the clock. the us er will select off to syn- chronously wake up when the internal done bit is set and ignore any external driving of the done pin. the default for done_ex preference is off. if done_ex is set to on, done_od should be set to the default value of on. if and external signal is driving the done pin, it should be an open drain pin. see table 12-6 for more information on the relationship between done_od and done_ex. table 12-6. summary of done pin preferences (preferences) master clock selection when the user has determin ed that the latticeecp/ec device will be a master configuration device and will pro- vide the clocking source for configuration, the cclk will become an output clock with th e frequency set by the user. at the start of configuration the device operates with the default master clock frequency of 2.5mhz. one of the first configuration bits set will be the master clock. once the master clock configur ation bits are set, the clock will start operating at the user-defined frequency. in order to control the master clock frequency, the mcclk_freq preference can be set. the mcclk_freq pref- erence shall set the frequency of the master clock if selected by the config_mode and the cfg[0:2] pins. see the latticeecp/ec data sheet for the master clock frequencies supported by the mclk_freq preference. security when config_secure is set to on, no read back operation will be supp orted through the sysconfig port or ispjtag port of the configuration sram. the usercode re gister is readable and not considered securable. default is off. off indicates read back of the configuration memory is enabled through all ports. wake-up sequence the wake-up sequence cont rols three internal signals and the done pin will be driven post configuration and prior to user mode. see the wake-up sequence section of this document for an example of the phase controls and the device-specific section for specific info on the wake-up selections. the default setting for the wake_up preference will be determined by the done_ex setting. wake-up with done_ex = off (default setting) the wake_up preference will support the user-selecta ble options (1-25) as shown in ta b l e 1 2 - 3 . i f t h e u s e r d o e s not select a wake-up sequence, the default will be wa ke-up sequence 21 for done_ex preference set to off (default). wake-up with done_ex = on the wake_up preference will take the user selectable options (1-7) as shown in tabl e 12-3. if the user does not select a wake-up sequence, the default will be wake-up sequence 4 for the done_ ex preference set to on. start_up clock selection once the fpga is configured, it enters the start-up state, which is the transition between the configuration and operational states. this sequence is synchronized to a clock source, which defaults to cclk when sysconfig is used, or tck when jtag is used. done_ex wake-up process done_od off external done ignored user selected on external done low delays set to default (on)
12-18 lattice semiconductor latticeecp /ec sysconfig usage guide if desired, a user-defined clock source can be used instea d of cclk/tck. you need to specify this clock signal, and instantiate the strtup library element in your design. the example shown below shows the proper syntax of instantiating the strtup library element. verilog strtup u1 (.uclk()) /* synthesis syn_noprune=1 */; vhdl component strtup port(strtup: in std_ulogic ); end component; attribute syn_noprune: boolean ; attribute syn_noprune of strtup: component is true; begin u1: strtup port map (uclk =>); bit stream compression the latticeecp/ec devices support bit stream compression. when the compression preference is set to on, the lattice design software will generate a co mpressed version of the bit stream file inte rnally along with an uncom- pressed bit stream file. the latticeecp/ec devices will ro ute the compressed bit stre am through the decompres- sion engine when the compress_config preference is set to on. the compress_config preference defaults to off. it is possible for the compressed bit stream to be larger than the uncompressed bit stream. table 12-7. latticeecp/ec configuration memory requirements spi compatible spi flash vendors st microelectronics - m25pxx ?inbond - w25pxx ?ilicon storage tech nology - sst25vfxx spansion - s25flxx ?mc pflash - pm25lvxx ?tmel - at25fxx family device max. config. bits (mb) required boot memory (mb) without compression typical compression latticeecp/ec ec1 0.6 1 25% ec3 1.1 2 25% ecp/ec6 1.8 2 25% ecp/ec10 3.1 4 25% ecp/ec15 4.3 8 25% ecp/ec20 5.3 8 25% ecp/ec33 7.9 8 25%
12-19 lattice semiconductor latticeecp /ec sysconfig usage guide technical support assistance hotline: 1-800-lattice (north america) +1-503-268-8001 (outside north america) e-mail: techsupport@latticesemi.com internet: www.latticesemi.com revision history date version change summary june 2004 01.0 initial release. july 2004 1.1 changed do/c son to dout/cson. clarified signal names associated with data pins during spi and other modes. indicated value for initn pull up resistor in master and slave serial daisy chained diagram added section detailing compatible spi flash vendors. october 2004 1.2 update table 6-7 for formatting and compression %. may 2005 2.0 changed spi3 to spi updated initn description to include the power cycling instruction for spi mode updated cclk to include toggling the cclk co ntinuously throughout configuration and error recovery updated dual-purpose use pin updated master parallel mode october 2005 2.1 added information on how to use the sysconfig dual-purpose pins as gpio april 2006 2.2 updated wake-up options july 2008 2.3 updated latticeecp/ec device preference list table. replaced wake-up clock selection text section with new start_up clock selection text section. september 2008 02.4 updated cclk text section.
www.latticesemi.com 14-1 tn1054_01.2 february 2006 technical note tn1054 ?2006 lattice semiconductor corp. all lattice trademarks, registered trademarks, patents, and disclaimers are as listed at www .latticesemi.com/legal. all other brand or product names are trademarks or registered trademarks of their respective holders. the specifications and information herein are subject to change without notice. introduction this document describes the functionality and usage of isptracy, lattices integrated logic analyzer for the ispxpga , latticesc, latticeecp2, latt iceecp, latticeec and latticexp fpga families. the isp- tracy tool consists of an intellectual property (ip) hardware block and three software tools core generator, core linker and ispla. isptracy allows for fast debugging and functional verification inside lattice fpga devices without the need for expensive test and measurement equipment. debugging is accomplished through the hard- ware ip compiled in the design, on device block ram and the device jtag port. isptracy ip core features the isptracy ip core is highly configurable. these config urable features include width and depth of data capture lines, multiple edge and level sensitive trigger signals, complex comparison for trigger events, delayed trigger events and more. isptracy allows multiple isptracy ip cores to be included in a single design. the following table summarizes the features of the isptracy ip core. table 14-1. isptracy ip core features isptracy ip module generator to i n c l u d e i s p t r ac y c o r e s i n a d e s i g n , t h e f i r s t step is to run ipexpress from the isplever project navigator. figure 14-1 shows the launch button for the ip manager program. figure 14-1. ipexpress launch butt on in isplever project navigator feature description depth of memory capture 256 to 4096 samples data capture width 8 to 256 bits tr i g g e r i n g s c h e m e s r i s i n g / fa l l i n g e d g e s , l eve l l o g i c , c o m p a r i s o n , t r i g g e r a f t e r c o m b i n a t i o n o f eve n t s number of triggers 4 to 128 bits, can be a co mbination of edge and level sensitive signals number of core up to 16 isptracy cores lattice isptracy usage guide
14-2 lattice semiconductor lattic e isptracy usage guide once ipexpress is launched, you will be presented with the option of genera ting the isptracy ip module by selecting the jtag module uner architecture and clicking the customize button. figure 14-2 shows the ipexpress window. selections for the project path and module name are made through this window figure 14-2. isptracy ip manager program window isptracy core generator the isptracy core generator under jtag module provides all the controls for customizing the isptracy core(s). selections on this page influence the final size of the core(s) inside the fpga and features available in terms of triggers, size of data bus and depth of memory capture. figure 14-3 shows the core generator window and table 14-3 contains descriptions of each of the figures available in the ip core. once the core features are selected, clicking on the generate button will create the necessar y files for the core linker program. figure 14-3. isptracy core generator window
14-3 lattice semiconductor lattic e isptracy usage guide table 14-2. isptracy core generator features and descriptions feature description number of core the number of ispla(s) in an xpga can be either 1, 2, 3, ..., or 16. the ispla needs to be configured before use. after [generate] button is clicked, the isptracy software will gen- erate the required logic for each ispla based on its own configuration. isptracy core lists the ispla. size comparison logic the comparison logic can compare the trigger bu s with the patterns setting by the user. this field needs to be on for ">", ">=", "<", "<=" comparison. if it's off, only = (equal) and <> (not equal) comparison can be preformed. event counter size this field configures the size of the event count er. if this field is 8, the counter can be set to the value from 1 to 255. if this field is 16, the counter can be set to the value from 1 to 65535. if this field is "none", the counter logic is removed (i.e. counter value n always equal 1). if the counter value is set to n, then when the pattern occurs n times, the corre- sponding event will be true. trigger same as trace if this is on, the trace bus and trigger bus are the same bus. if this is off, the trace bus and trigger bus are different and they can have different bus sizes. tr i g g e r b u s s i ze t h i s s p e c i f i e s t h e t r i g g e r b u s s i ze . i t c a n b e 4 , 5 , 6 , . . . , u p t o 1 2 8 . tr a c e b u s s i z e this specifies the trace bus size. it can be a mu ltiple of 8 up to 256 (i.e. 8, 16, 24, 32, 40,..., up to 256). trace memory depth this is the depth of the trace memory. it defines the number of trace bus samples that ispla can capture. this field can be set be se t to 512, 1024, 2048, or 4096. it can also be set to 256 if the trace bus size is a multiple of 16 (i.e. 16, 32, 48, etc.). sample_after_trigger mode logic the field causes the sample_after_trigger mode logic to be removed or not. if this is on, the trace mode can be set to "one s hot" mode or "sample after trigger" mode. if this is off, the trace can only be running at "one shot" mode. when this logic is turned off, the ispla will use less logic. number of edge trigger signals the trigger bus signals can be either edge sens itive signals or level sensitive signals. the level sensitive trigger signals can only be set to 0, 1 or x (don't care). the edge sensitive trigger signals can be set to 0, 1, x, r (rising edge), f (falling edge) or b (both edges). this field specifies the number of edge sensitive trigger signals. number of level trigger signals this field specifies the number of level sensitive trigger signals. note that (number of edge trigger signals) + (number of level trigger signals) = (trigger bus size). tr i g g e r i n p u t l o g i c this specifies if the "trigger input" logic exis ts. if this field is "none", the logic will be removed and the trigger condition can only be set using ev0 and ev1. if this field is set to "pin" the trigger input logic exists and the trigger input should come from an ispxpga device i/o pin. the trigger input can be set to either active low or active high. tr i g g e r o u t p u t l o g i c this specifies if the "trigger output" logic ex ists. if this field is "none", the logic will be removed. if this field is set to "pin" the trigger output logic exists and the trigger output should go out through an xpga device i/o pin. if this is set to "ispla", the trigger output will be connected to the trigger input of other isplas. yo u m u s t c h o o s e " tr i g g e r i n p u t l o g i c " o f t h e o t her isplas to be this ispla. same as the trigger input, the trigger output can be set to either active low or active high. at least one ispla should have this option set to "pin." generate generates the core. cancel cancels the action and closes the dialog box without saving any changes. help displays online help topics for this dialog box.
14-4 lattice semiconductor lattic e isptracy usage guide isptracy core linker once the isptracy core is created, it must be linked into the target design. this is accomplished through the core linker program. the core linker program allows the user access to internal and external signals of the target design. the internal signals can be named signals or component ports. this window also displays the available isp- tracy ports. to connect isptracy signals, the desired si gnal(s) are selected in the left-hand signal window. sig- nals chosen from this window are reflected in the selected signals window. signals must be highlighted in this window, the isptracy port window and then click on the connect button to connect the signals in the rtl code. multiple instances (for example, a data bus) can be connec ted at once by highlighting the first signal, holding down the shift key and clicking on the last desired signal. figure 14-4 shows the isptracy core linker window. figure 14-4. isptracy core linker program window when you click the save button (or file -> save menu sele ction), the core linker will cr eate modified versions of your source file, with the isptracy core linked into these modified files. only design files that are directly con- nected to the core will be modi fied. a dialogue box will indicate which file s have been changed and will need to be replaced in the design project for isptracy to function . the design files names will be t he original files names with the module name for the isptracy core (from the ipexpress isptracy core generation) appended. figure 14-5 shows the changed files dialogue box.
14-5 lattice semiconductor lattic e isptracy usage guide figure 14-5. isptracy core linker output window after clicking ok, you will be back in the isptracy core linker. you may now close this and return to the isp- lever project navigator. at this point, it is necessary to replace the original design files with the isptracy core linker modified files. figure 6 shows this file replacement process on a design. figure 14-6. original project navigator (left) and isptracy project navigator (right)
14-6 lattice semiconductor lattic e isptracy usage guide isptracy ispla program after replacing the original design files with the isptracy core linker modified files, it is necessary to re-compile the design and then program the device using the ispvm software (see online documentation for running the ispvm program). once the device is successfully programmed, the ispla program needs to be started. figure 14-7 shows the ispla launch button from the project navigator. figure 14-7. ispla launch butt on in isplever project navigator ispla provides for capture and display of data from the is ptracy core. the program is used to setup the trigger events counters, trigger location in data buffer, event patterns, event comparisons and data display. figure 14-8 shows the initial startup windows required to run ispla. figure 14-8. ispla program window ?new project setup once the project is set up, you can open up a trigger setup and viewing window for the project by clicking on  window -> show ispla window -> device 0 -> device 0 la0. figure 9 shows the ispla window. there are three tabs available under this window, trigger setup, event pattern and signal analysis (data view).
14-7 lattice semiconductor lattic e isptracy usage guide figure 14-9. ispla project setup window - trigger setup options the options available in the trigger setup window are based on selected isptracy core options. in the trace mode box, one shot mode will always be available, but sample after trigger av ailability is depende nt on selecting sample_after_trigger mode logic => on. the position slider can be used to select the trigger point anywhere within the data memory depth. there are three preconfigured trigger positions in the drop-down menu box. they are pre-trigger (5% before and 95% after trigger), center (50% before and 50% after trigger) and post trigger (95% before and 5% after trigger). in the compare mode box the options are also dependant on core configuration. ev0 and ev1 are always available. the comparisons ava ilable and number of sample s will be determined by the size comparison logic and event counter size. the equal to comparison is always available. additions compari- sons include >, <. !=, <=, >=. the trigger condition box configures which event or co mbination of events will cause the ispla program to trigger and upload captured data from the device. in a simple case, this would be set to wait for ev0. more complex cases could possible be wait for ev0 and ev1, or after ev1 wait until ev0. the final two boxed on this screen control the signal polarity of trigger in (if available) and trigger out.
14-8 lattice semiconductor lattic e isptracy usage guide figure 14-10. ispla project setup window - event pattern setup the event pattern window configures the patterns for ev0 and ev1. pattern 0 corresponds to ev0 and pattern 1 corresponds to ev1. the sample types for trigger signals depends on whether the signal is edge or level sensitive. if the signal is level sensitive, in the mi ddle pattern window, only logic 0 (0) ,logic (1) or don't care (x) are available. for edge sensitive signals, the options ar e logic 0 (0), logic 1 (1), rising (r), falling (f), both /either edge (b) or don't care (x). in this window, changes to the pattern are made in the center section (pattern 1 or pattern 0) and the changes are reflected in the right section. to b e g i n s a m p l i n g , c l i ck o n t h e g r e e n r u n bu t t o n . s a m p l i ng will complete when the tri gger conditions are met. the data will be uploaded through the jtag cable and results displayed i the si gnal analysis window. figure 14-11 shows the signal analysis window after a data capture cycle. figure 14-11. ispla signal analysis window
14-9 lattice semiconductor lattic e isptracy usage guide conclusion isptracy is a full-featured logic analysis tool for use in lattice fpga products incl uding ispxpga, latticeecp/ec and latticexp families. using internal device resources, including pff/pfu, embedde d block ram and the device jtag port, the user can quickly verify functionality and assist in device debugging. isptracy reduces the need for external test and measurement equipment to debug fpga projects, while providing full access to a wide range of internal signals, components and design elements. references isptracy usage guide, 2/07/04 rev. 0.1, page 14 of 14. technical support assistance hotline: 1-800-lattice (north america) +1-503-268-8001 (outside north america) e-mail: techsupport@latticesemi.com internet: www.latticesemi.com
www.latticesemi.com 15-1 tn1057_01.2 october 2005 technical note tn1057 ? 2005 lattice semiconductor corp. all lattice trademarks, register ed trademarks, patents, and disclaimers are as listed at www .latticesemi.com/legal. all other brand or product names are trademarks or registered trademarks of their respective holders. the specifications and information herein are subject to change without notice. introduction this technical note discusses how to access the featur es of the latticeecp-dsp sy sdsp (digital signal pro- cessing) block described in the latticeecp/ec family data sheet. designs targeting the sysdsp block offer signif- icant improvement over traditional lut-based implementations. table 15-1 provides an example of the performance and area benefits of this approach. table 15-1. sysdsp block vs. lut-based multipliers sysdsp block hardware overview the sysdsp blocks are located in a row at the center of the latticeecp-dsp device. a sysdsp block block dia- gram is shown in figure 15-1. figure 15-1. latticeecp sysdsp block diagram multiplier width register pipelining latticeecp lfecp20e-5 uses one dsp block latticeec lfec20e-5 uses luts f max luts f max luts 9x9 input, multiplier, output 235 0 76 174 18x18 input, multiplier, output 211 0 50 608 36x36 input, multiplier, output 177 0 35 2225 outa0(18) outb0(18) outa1(18) outb1(18) outa2(18) outb2(18) outa3(18) outb3(18) summation (38) (two 20 bits in 9x9 mode) 36x36 (mult36) accumulator (52) 1 output registers intermediate pipeline registers adder, subtractor and accumulator functions one of these one of these 36x36, 18x18 and 9x9 multiplier functions output registers to sri of right-side sysdsp block (if it exists) input registers from sro of left-side sysdsp block (or tied to zero if none) accumulator (52) 3 add/sub (36) (9x9 2x18) 1 pr0 (36) in reg a0 in reg a1 in reg b1 in reg a2 in reg a3 in reg b0 in reg b2 in reg b3 9x9 9x9 36 9x9 9x9 9x9 9x9 9x9 9x9 pr1 (36) pr2 (36) pr3 (36) mult18-0 mult18-1 mult18-2 mult18-3 add/sub (36) (9x9 2x18) 3 note: each sysdsp block spans eight columns of pfus. 36 latticeecp-dsp sysdsp usage guide
 lattice semiconductor latticeecp -dsp sysdsp usage guide 15-2 sysdsp blocks have three operating modes: 36x36 mode ?ne 36x36 multiplier 18x18 mode ?our multipliers ?wo 52-bit macs ?wo sums of two 18x18 multipliers each ?ne sum of four 18x18 multipliers 9x9 mode ?ight multipliers ?wo 34-bit macs ?our sums of two 9x9 multipliers each ?wo sums of four 9x9 multipliers each sysdsp block software overview the sysdsp block of the latticeecp-dsp device can be targeted in a number of ways. ?pexpress in the lattice isplever design tools allows the rapid creation of modules implementing sys - dsp elements. these modules can then be used in hdl designs as appropriate. ?he coding of certain functions into a designs hdl a llows the synthesis tools to inference the use of a sys - dsp block. ?he implementation of designs in mathworks simulink tool using a lattice block set. the isplever sys - dsp portion of the isplever tools then converts these blocks into hdl as appropriate. ?nstantiation of sysdsp primitives directly in the source code. targeting the sysdsp bl ock using ipexpress ipexpress allows you to graphically specify sysdsp elemen ts. once the element is specified, an hdl file is gener- ated which can be instantiated in a design. ipexpress allows users to configure all ports and set all available parameters. the following show modules which target the sysdsp block. for design examples using ipexpress, refer to examples in your isplever software. from the project navigator pull-down me nu, go to file -> open example). the following four element types can be specified via ipexpress: ?ult (multiplier) ?ac (multiplier accumulate) ?ultaddsub (multiplier add/subtract) ?ultaddsubsum (multiply add/subtract and sum)
 lattice semiconductor latticeecp -dsp sysdsp usage guide 15-3 mult module the mult module configures elements to be packed into the sysdsp primitiv es. the basic mode screen illustrated in figure 15-2 consists of one clock (optional), one clock enable and one reset tied to all registers. using the multi- plier you can span multiple sysdsp blocks. the sri and sro ports can only be enabled if inputs are less than 18 bits. the advanced mode screen, illustrated in figure 15-3, allows finer control over the regi ster. in the advanced mode you can control each register with independent clocks, clock enables and resets. figure 15-2. mult mode basic set-up figure 15-3. mult mode advanced set-up
 lattice semiconductor latticeecp -dsp sysdsp usage guide 15-4 mac module the mac module configures multiply accumulate elements to be packed into the primitives. the basic mode, shown in figure 15-4, consists of one clock (optional), one clock enable and one reset tied to all registers. because of the accumulator, the output register is automatically enabled. the sri and sro ports can only be enabled if inputs are less than 18 bits. the accumsload loads the ac cumulator with the value from the multiplier. this is required to initialize and load the first value of the accumulation. the advanced mode, shown in figure 15-5, allows finer control over the registers. in the advanced mode you can control each register with independent clocks, clock enables and resets. figure 15-4. mac mode basic set-up figure 15-5. mac mode advanced set-up
 lattice semiconductor latticeecp -dsp sysdsp usage guide 15-5 multaddsub module the multaddsub gui configures multiplier addition/subtr action elements to be packed into the primitives mult18x18addsub or mult9x9addsub. the basic mode , shown in figure 15-6, consists of one clock (optional), one clock enable and one reset tied to all registers. using the multaddsub you can span multiple sys- dsp blocks. the sri and sro ports can only be enabled if inputs are less than 18 bits. the advanced mode, shown in figure 15-7, provides finer control over the registers. in the advanced mode you can control each register with independent clocks, clock enables and resets. figure 15-6. multaddsub mode basic set-up figure 15-7. multaddsub mode advanced set-up
 lattice semiconductor latticeecp -dsp sysdsp usage guide 15-6 multaddsubsum module the multaddsubsum gui configures multiplier addition/subtraction addition elements to be packed into the primitives mult18x18addsubsum or mult9x9addsubsum. the basic mode, shown in figure 15-8, consists of one clock (optional), one clock enable and one reset tied to all registers. using the multaddsubsum you can span multiple sysdsp blocks. the sri and sro ports can on ly be enabled if inputs are less than 18 bits. the advanced mode, shown in figure 15-9, provides finer control over the registers. in the advanced mode you can control each register with independent clocks, clock enables and resets. figure 15-8. multaddsubsum mode basic set-up
 lattice semiconductor latticeecp -dsp sysdsp usage guide 15-7 figure 15-9. multaddsubsum mode advance 1 set-up targeting the sysdsp block by inference the inferencing flow enables the design tools to infer sysdsp blocks from a hdl design. it is important to note that when using the inferencing flow; unless the code styl e matches the sysdsp block results will not be optimal results. consider the following veriflog and vhdl examples: // this verilog example will be mapped into single mult9x9mac with the output register enabled // this will be mapped into single mult9x9mac with the output register enabled module mult_acc (dataout, dataax, dataay, clk); output [16:0] dataout; input [7:0] dataax, dataay; input clk; reg [16:0] dataout; wire [15:0] multa = dataax * dataay; // 9x9 multiplier wire [16:0] adder_out; assign adder_out = multa + dataout; // accumulator always @(posedge clk) begin dataout <= adder_out; // output register of the accumulator end endmodule
 lattice semiconductor latticeecp -dsp sysdsp usage guide 15-8 -- this vhdl example will be mapped into single mult9x9mac with the output register enabled library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_signed.all; entity mult_acc is port ( clk : in std_logic; dataax : in std_logic_vector(7 downto 0); dataay : in std_logic_vector(7 downto 0); dataout : out std_logic_vector(16 downto 0)); end; architecture arch of mult_acc is signal multout : std_logic_vector(15 downto 0); signal adder_out : std_logic_vector(16 downto 0); signal dataout_reg : std_logic_vector(16 downto 0); begin multout <= dataax * dataay; -- 9x9 multiplier adder_out <= multout + dataout_reg; process (clk) begin if (clk'event and clk='1') then dataout_reg <= adder_out; -- output register of the accumulator end if; end process; dataout <= dataout_reg; end arch; the above rtl will infer the following block diagram. figure 15-10. mult9x9mac block diagram as you can see, this block diagram can be mapped directly into the sysdsp primitives if we were to add a test point between the multiplier and the accumulator, or two output registers, the code could not be mapped into a mult9x9mac of a sysdsp block. so options you could incl ude in the design would be input registers, pipeline registers, etc. for more inferring design exam ples refer to examples in your isplever software. multiplier accumulator output register
 lattice semiconductor latticeecp -dsp sysdsp usage guide 15-9 figure 15-11. mac9x9mac packed into a sysdsp block targeting the sysdsp block using simulink simulink overview simulink is a graphical add-on (similar to schematic entry) for matlab, which is produced by mathworks. for more information refer to the si mulink web site at www.math works.com/products/simulink/ . why is simulink used? simulink allows users to create algorithms using floating point numbers ?t helps users convert floating point algorithms into fixed point algorithms how does simulink fit into th e normal isplever design flow? once you have converted have your algorithm working in fixed point you can use the lattice ispdsp block to create hdl files, which can be instantiat ed in your hdl design. currently there is only support for vhdl. what does lattice provide? lattice provides a library of blocks for the simulink tool, which include multipliers, adders, registers and other stan- dard building blocks. besides the basic building blocks there are a couple of unique lattice blocks. gateways in and out everything between gateways in and out represents hdl code. everything before a gateway in is the stimulus your test bench. everythi ng after a gateway out are t he signals you will be monitori ng in your test bench. figure 15-12 is an example. ispdsp the ispdsp block is used to convert fixed point simulink design into hdl files which can be instantiated in your hdl design. the ispdsp block is identified by th e lattice logo and can be seen in figure 21. overflow1 accum1[33:0] overflow3 accum3[33:0] mui18a1[8:0] mui18b1[8:0] mui18a3[8:0] mui18b3[8:0] sroa[8:0] 1 clk[3:0] 2 ce[3:0] 1 rst[3:0] 1 notes: 1. these signals are optional. 2. at least one clock is required. srib[8:0] 1 sria[8:0] 1 18x18 - 1 pipe 1 18x18 - 3 pipe 3 out reg 3 out reg 2 out reg 1 out reg 0 34-bit accum 3 34-bit accum 1 addnsub[3,1] 1 accumsload[3,1] 1 signedab[3,1] 1 user only allowed to use lower order 9 bits for each operand. srob[8:0] 1 +/- +/- reg a1 in reg b1 in reg a3 in reg b3 in
 lattice semiconductor latticeecp -dsp sysdsp usage guide 15-10 figure 15-12. simulink design targeting the sysdsp block by instantiating primitives you can target the sysdsp block by instantiating the sysdsp block primitives into your design. the advantage of instantiating primitives is that it gives you access to all ports and set all available parameters. the disadvantage of this flow is that all this customization comes at a cost of extra coding for the user. appendix a details the syntax for the sysdsp block primitives. sysdsp blocks in the report file to check configuration of the sysdsp blocks in your design , look at the map and post par report files. the map report file shows the mapped sysdsp components/primitives in your design. the post par report file shows the number of components in each sysdsp block. the following gives an example of the sysdsp section from each of the report files.
 lattice semiconductor latticeecp -dsp sysdsp usage guide 15-11 map report file number of mapped dsp components: -------------------------------- mult36x36 0 mult18x18 1 mult18x18mac 0 mult18x18addsub 0 mult18x18addsubsum 0 mult9x9 0 mult9x9mac 0 mult9x9addsub 0 mult9x9addsubsum 0 post par report file dsp utilization summary: ------------------------------------- dsp block #: 1234567 # of mult36x36 # of mult18x18 1 # of mult18x18mac # of mult18x18addsub # of mult18x18addsubsum # of mult9x9 # of mult9x9mac # of mult9x9addsub # of mult9x9addsubsum technical support assistance hotline: 1-800-lattice (north america) +1-503-268-8001 (outside north america) e-mail: techsupport@latticesemi.com internet: www.latticesemi.com
 lattice semiconductor latticeecp -dsp sysdsp usage guide 15-12 appendix a. dsp block primitives mult36x36 primitive mult36x36(ce0,ce1,ce2,ce3,clk0,clk1,clk2,clk3,rst0,rst1,rst2,rst3,signedab, a0,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17, a18,a19,a20,a21,a22,a23,a24,a25,a26,a27,a28,a29,a30,a31,a32,a33,a34,a35, b0,b1,b2,b3,b4,b5,b6,b7,b8,b9,b10,b11,b12,b13,b14,b15,b16,b17, b18,b19,b20,b21,b22,b23,b24,b25,b26,b27,b28,b29,b30,b31,b32,b33,b34,b35, p0,p1,p2,p3,p4,p5,p6,p7,p8,p9,p10,p11,p12,p13,p14,p15,p16,p17, p18,p19,p20,p21,p22,p23,p24,p25,p26,p27,p28,p29,p30,p31,p32,p33,p34,p35, p36,p37,p38,p39,p40,p41,p42,p43,p44,p45,p46,p47,p48,p49,p50,p51,p52,p53, p54,p55,p56,p57,p58,p59,p60,p61,p62,p63,p64,p65,p66,p67,p68,p69,p70,p71) is black-box { property reg_inputa_clk {?one??lk0??lk1??lk2,?lk3?; property reg_inputa_ce {?e0??e1??e2??e3?; property reg_inputa_rst {?st0??st1??st2??st3}; property reg_inputb_clk {?one??lk0??lk1??lk2,?lk3?; property reg_inputb_ce {?e0??e1??e2??e3?; property reg_inputb_rst {?st0??st1??st2??st3}; property reg_pipeline_clk {?one??lk0??lk1??lk2??lk3?; property reg_pipeline_ce {ce0??e1??e2??e3?; property reg_pipeline_rst {?st0??st1??st2??st3?; property reg_output_clk {?one??lk0??lk1??lk2,?lk3?; property reg_output_ce {?e0??e1??e2??e3?; property reg_output_rst {?st0??st1??st2??st3}; property reg_signedab_0_clk {?one??lk0?clk1??lk2??lk3?; property reg_signedab_0_ce {?e0??e1??e2??e3?; property reg_signedab_0_rst {?st0??st1?rst2??st3?; property reg_signedab_1_clk {?one??lk0?clk1??lk2??lk3?; property reg_signedab_1_ce {?e0??e1??e2??e3?; property reg_signedab_1_rst {?st0??st1?rst2??st3?; property gsr {?nabled??isabled?; mult18x18 primitive mult18x18(ce0,ce1,ce2,ce3,clk0,clk1,clk2,clk3,rst0,rst1,rst2,rst3,signedab, a0,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17, b0,b1,b2,b3,b4,b5,b6,b7,b8,b9,b10,b11,b12,b13,b14,b15,b16,b17, sria0,sria1,sria2,sria3,sria4,sria5,sria6,sria7,sria8,sria9,sria10,sria11,sria12,sria13,sria1 4,sria15,sria16,sria17, srib0,srib1,srib2,srib3,srib4,srib5,srib6,srib7,srib8,srib9,srib10,srib11,srib12,srib13,srib1 4,srib15,srib16,srib17, sroa0,sroa1,sroa2,sroa3,sroa4,sroa5,sroa6,sroa7,sroa8,sroa9,sroa10,sroa11,sroa12,sroa13,sroa1 4,sroa15,sroa16,sroa17, srob0,srob1,srob2,srob3,srob4,srob5,srob6,srob7,srob8,srob9,srob10,srob11,srob12,srob13,srob1 4,srob15,srob16,srob17, p0,p1,p2,p3,p4,p5,p6,p7,p8,p9,p10,p11,p12,p13,p14,p15,p16,p17, p18,p19,p20,p21,p22,p23,p24,p25,p26,p27,p28,p29,p30,p31,p32,p33,p34,p35) is black-box { property reg_inputa_clk {?one??lk0??lk1??lk2,?lk3?; property reg_inputa_ce {?e0??e1??e2??e3?; property reg_inputa_rst {?st0??st1??st2??st3}; property reg_inputb_clk {?one??lk0??lk1??lk2,?lk3?; property reg_inputb_ce {?e0??e1??e2??e3?; property reg_inputb_rst {?st0??st1??st2??st3}; property reg_pipeline_clk {?one??lk0??lk1??lk2??lk3?; property reg_pipeline_ce {ce0??e1??e2??e3?; property reg_pipeline_rst {?st0??st1??st2??st3?; property reg_output_clk {?one??lk0??lk1??lk2,?lk3?;
 lattice semiconductor latticeecp -dsp sysdsp usage guide 15-13 property reg_output_ce {?e0??e1??e2??e3?; property reg_output_rst {?st0??st1??st2??st3}; property reg_signedab_0_clk {?one??lk0?clk1??lk2??lk3?; property reg_signedab_0_ce {?e0??e1??e2??e3?; property reg_signedab_0_rst {?st0??st1?rst2??st3?; property reg_signedab_1_clk {?one??lk0?clk1??lk2??lk3?; property reg_signedab_1_ce {?e0??e1??e2??e3?; property reg_signedab_1_rst {?st0??st1?rst2??st3?; property shift_in_a {?alse? ?rue}; property shift_in_b {?alse? ?rue}; property gsr {?nabled??isabled?; mult18x18mac primitive mult18x18mac(ce0,ce1,ce2,ce3,clk0,clk1,clk2,clk3,rst0,rst1,rst2,rst3,signedab,addnsub,accums - load, a0,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17, b0,b1,b2,b3,b4,b5,b6,b7,b8,b9,b10,b11,b12,b13,b14,b15,b16,b17, sria0,sria1,sria2,sria3,sria4,sria5,sria6,sria7,sria8, sria9,sria10,sria11,sria12,sria13,sria14,sria15,sria16,sria17, srib0,srib1,srib2,srib3,srib4,srib5,srib6,srib7,srib8, srib9,srib10,srib11,srib12,srib13,srib14,srib15,srib16,srib17, sroa0,sroa1,sroa2,sroa3,sroa4,sroa5,sroa6,sroa7,sroa8, sroa9,sroa10,sroa11,sroa12,sroa13,sroa14,sroa15,sroa16,sroa17, srob0,srob1,srob2,srob3,srob4,srob5,srob6,srob7,srob8, srob9,srob10,srob11,srob12,srob13,srob14,srob15,srob16,srob17, accum0,accum1,accum2,accum3,accum4,accum5,accum6,accum7,accum8, accum9,accum10,accum11,accum12,accum13,accum14,accum15,accum16,accum17, accum18,accum19,accum20,accum21,accum22,accum23,accum24,accum25,accum26, accum27,accum28,accum29,accum30,accum31,accum32,accum33,accum34,accum35, accum36,accum37,accum38,accum39,accum40,accum41,accum42,accum43,accum44, accum45,accum46,accum47,accum48,accum49,accum50,accum51,overflow) is black-box { property reg_inputa_clk {?one??lk0??lk1??lk2,?lk3?; property reg_inputa_ce {?e0??e1??e2??e3?; property reg_inputa_rst {?st0??st1??st2??st3}; property reg_inputb_clk {?one??lk0??lk1??lk2,?lk3?; property reg_inputb_ce {?e0??e1??e2??e3?; property reg_inputb_rst {?st0??st1??st2??st3}; property reg_pipeline_clk {?one??lk0??lk1??lk2??lk3?; property reg_pipeline_ce {ce0??e1??e2??e3?; property reg_pipeline_rst {?st0??st1??st2??st3?; property reg_output_clk {?lk0??lk1??lk2??lk3}; property reg_output_ce {?e0??e1??e2??e3?; property reg_output_rst {?st0??st1??st2??st3}; property reg_signedab_0_clk {?one??lk0?clk1??lk2??lk3?; property reg_signedab_0_ce {?e0??e1??e2??e3?; property reg_signedab_0_rst {?st0??st1?rst2??st3?; property reg_signedab_1_clk {?one??lk0?clk1??lk2??lk3?; property reg_signedab_1_ce {?e0??e1??e2??e3?; property reg_signedab_1_rst {?st0??st1?rst2??st3?; property reg_addnsub_0_clk {?one?clk0??lk1??lk2??lk3?; property reg_addnsub_0_ce {?e0??e1??e2,?e3?; property reg_addnsub_0_rst {?st0?rst1??st2??st3?; property reg_addnsub_1_clk {?one?clk0??lk1??lk2??lk3?; property reg_addnsub_1_ce {?e0??e1??e2,?e3?; property reg_addnsub_1_rst {?st0?rst1??st2??st3?; property reg_accumsload_0_clk {?one??lk0,?lk1??lk2?clk3?; property reg_accumsload_0_ce {?e0??e1??e2??e3?;
 lattice semiconductor latticeecp -dsp sysdsp usage guide 15-14 property reg_accumsload_0_rst {?st0??st1,?st2??st3?; property reg_accumsload_1_clk {?one??lk0,?lk1??lk2?clk3?; property reg_accumsload_1_ce {?e0??e1??e2??e3?; property reg_accumsload_1_rst {?st0??st1,?st2??st3?; property shift_in_a {?alse? ?rue}; property shift_in_b {?alse? ?rue}; property gsr {?nabled??isabled?; mult18x18addsub primitive mult18x18addsub(ce0,ce1,ce2,ce3,clk0,clk1,clk2,clk3,rst0,rst1,rst2,rst3,signedab,addnsub, a00,a01,a02,a03,a04,a05,a06,a07,a08,a09,a010,a011,a012,a013,a014,a015,a016,a017, a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a110,a111,a112,a113,a114,a115,a116,a117, b00,b01,b02,b03,b04,b05,b06,b07,b08,b09,b010,b011,b012,b013,b014,b015,b016,b017, b10,b11,b12,b13,b14,b15,b16,b17,b18,b19,b110,b111,b112,b113,b114,b115,b116,b117, sria0,sria1,sria2,sria3,sria4,sria5,sria6,sria7,sria8, sria9,sria10,sria11,sria12,sria13,sria14,sria15,sria16,sria17, srib0,srib1,srib2,srib3,srib4,srib5,srib6,srib7,srib8, srib9,srib10,srib11,srib12,srib13,srib14,srib15,srib16,srib17, sroa0,sroa1,sroa2,sroa3,sroa4,sroa5,sroa6,sroa7,sroa8, sroa9,sroa10,sroa11,sroa12,sroa13,sroa14,sroa15,sroa16,sroa17, srob0,srob1,srob2,srob3,srob4,srob5,srob6,srob7,srob8, srob9,srob10,srob11,srob12,srob13,srob14,srob15,srob16,srob17, sum0,sum1,sum2,sum3,sum4,sum5,sum6,sum7,sum8, sum9,sum10,sum11,sum12,sum13,sum14,sum15,sum16,sum17, sum18,sum19,sum20,sum21,sum22,sum23,sum24,sum25,sum26, sum27,sum28,sum29,sum30,sum31,sum32,sum33,sum34,sum35, sum36) is black-box { property reg_inputa0_clk {none??lk0??lk1??lk2??lk3}; property reg_inputa0_ce {?e0??e1,?e2?ce3?; property reg_inputa0_rst {rst0??st1??st2??st3?; property reg_inputa1_clk {none??lk0??lk1??lk2??lk3}; property reg_inputa1_ce {?e0??e1,?e2?ce3?; property reg_inputa1_rst {rst0??st1??st2??st3?; property reg_inputb0_clk {none??lk0??lk1??lk2??lk3}; property reg_inputb0_ce {?e0??e1,?e2?ce3?; property reg_inputb0_rst {rst0??st1??st2??st3?; property reg_inputb1_clk {none??lk0??lk1??lk2??lk3}; property reg_inputb1_ce {?e0??e1,?e2?ce3?; property reg_inputb1_rst {rst0??st1??st2??st3?; property reg_pipeline0_clk {?one?clk0??lk1??lk2??lk3?; property reg_pipeline0_ce {?e0??e1??e2,?e3?; property reg_pipeline0_rst {?st0?rst1??st2??st3?; property reg_pipeline1_clk {?one?clk0??lk1??lk2??lk3?; property reg_pipeline1_ce {?e0??e1??e2,?e3?; property reg_pipeline1_rst {?st0?rst1??st2??st3?; property reg_output_clk {?one??lk0??lk1??lk2,?lk3?; property reg_output_ce {?e0??e1??e2??e3?; property reg_output_rst {?st0??st1??st2??st3}; property reg_signedab_0_clk {?one??lk0?clk1??lk2??lk3?; property reg_signedab_0_ce {?e0??e1??e2??e3?; property reg_signedab_0_rst {?st0??st1?rst2??st3?; property reg_signedab_1_clk {?one??lk0?clk1??lk2??lk3?; property reg_signedab_1_ce {?e0??e1??e2??e3?; property reg_signedab_1_rst {?st0??st1?rst2??st3?; property reg_addnsub_0_clk {?one?clk0??lk1??lk2??lk3?; property reg_addnsub_0_ce {?e0??e1??e2,?e3?; property reg_addnsub_0_rst {?st0?rst1??st2??st3?;
 lattice semiconductor latticeecp -dsp sysdsp usage guide 15-15 property reg_addnsub_1_clk {?one?clk0??lk1??lk2??lk3?; property reg_addnsub_1_ce {?e0??e1??e2,?e3?; property reg_addnsub_1_rst {?st0?rst1??st2??st3?; property shift_in_a0 {?alse? ?rue?; property shift_in_b0 {?alse? ?rue?; property shift_in_a1 {?alse? ?rue?; property shift_in_b1 {?alse? ?rue?; property gsr {?nabled??isabled?; mult18x18addsubsum primitive mult18x18addsubsum(ce0,ce1,ce2,ce3,clk0,clk1,clk2,clk3,rst0,rst1,rst2,rst3,signedab,addnsub1, addnsub3, a00,a01,a02,a03,a04,a05,a06,a07,a08,a09,a010,a011,a012,a013,a014,a015,a016,a017, a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a110,a111,a112,a113,a114,a115,a116,a117, a20,a21,a22,a23,a24,a25,a26,a27,a28,a29,a210,a211,a212,a213,a214,a215,a216,a217, a30,a31,a32,a33,a34,a35,a36,a37,a38,a39,a310,a311,a312,a313,a314,a315,a316,a317, b00,b01,b02,b03,b04,b05,b06,b07,b08,b09,b010,b011,b012,b013,b014,b015,b016,b017, b10,b11,b12,b13,b14,b15,b16,b17,b18,b19,b110,b111,b112,b113,b114,b115,b116,b117, b20,b21,b22,b23,b24,b25,b26,b27,b28,b29,b210,b211,b212,b213,b214,b215,b216,b217, b30,b31,b32,b33,b34,b35,b36,b37,b38,b39,b310,b311,b312,b313,b314,b315,b316,b317, sria0,sria1,sria2,sria3,sria4,sria5,sria6,sria7,sria8, sria9,sria10,sria11,sria12,sria13,sria14,sria15,sria16,sria17, srib0,srib1,srib2,srib3,srib4,srib5,srib6,srib7,srib8, srib9,srib10,srib11,srib12,srib13,srib14,srib15,srib16,srib17, sroa0,sroa1,sroa2,sroa3,sroa4,sroa5,sroa6,sroa7,sroa8, sroa9,sroa10,sroa11,sroa12,sroa13,sroa14,sroa15,sroa16,sroa17, srob0,srob1,srob2,srob3,srob4,srob5,srob6,srob7,srob8, srob9,srob10,srob11,srob12,srob13,srob14,srob15,srob16,srob17, sum0,sum1,sum2,sum3,sum4,sum5,sum6,sum7,sum8, sum9,sum10,sum11,sum12,sum13,sum14,sum15,sum16,sum17, sum18,sum19,sum20,sum21,sum22,sum23,sum24,sum25,sum26, sum27,sum28,sum29,sum30,sum31,sum32,sum33,sum34,sum35, sum36,sum37) is black-box { property reg_inputa0_clk {none??lk0??lk1??lk2??lk3}; property reg_inputa0_ce {?e0??e1,?e2?ce3?; property reg_inputa0_rst {rst0??st1??st2??st3?; property reg_inputa1_clk {none??lk0??lk1??lk2??lk3}; property reg_inputa1_ce {?e0??e1,?e2?ce3?; property reg_inputa1_rst {rst0??st1??st2??st3?; property reg_inputa2_clk {none??lk0??lk1??lk2??lk3}; property reg_inputa2_ce {?e0??e1,?e2?ce3?; property reg_inputa2_rst {rst0??st1??st2??st3?; property reg_inputa3_clk {none??lk0??lk1??lk2??lk3}; property reg_inputa3_ce {?e0??e1,?e2?ce3?; property reg_inputa3_rst {rst0??st1??st2??st3?; property reg_inputb0_clk {none??lk0??lk1??lk2??lk3}; property reg_inputb0_ce {?e0??e1,?e2?ce3?; property reg_inputb0_rst {rst0??st1??st2??st3?; property reg_inputb1_clk {none??lk0??lk1??lk2??lk3}; property reg_inputb1_ce {?e0??e1,?e2?ce3?; property reg_inputb1_rst {rst0??st1??st2??st3?; property reg_inputb2_clk {none??lk0??lk1??lk2??lk3}; property reg_inputb2_ce {?e0??e1,?e2?ce3?; property reg_inputb2_rst {rst0??st1??st2??st3?; property reg_inputb3_clk {none??lk0??lk1??lk2??lk3}; property reg_inputb3_ce {?e0??e1,?e2?ce3?; property reg_inputb3_rst {rst0??st1??st2??st3?;
 lattice semiconductor latticeecp -dsp sysdsp usage guide 15-16 property reg_pipeline0_clk {?one?clk0??lk1??lk2??lk3?; property reg_pipeline0_ce {?e0??e1??e2,?e3?; property reg_pipeline0_rst {?st0?rst1??st2??st3?; property reg_pipeline1_clk {?one?clk0??lk1??lk2??lk3?; property reg_pipeline1_ce {?e0??e1??e2,?e3?; property reg_pipeline1_rst {?st0?rst1??st2??st3?; property reg_pipeline2_clk {?one?clk0??lk1??lk2??lk3?; property reg_pipeline2_ce {?e0??e1??e2,?e3?; property reg_pipeline2_rst {?st0?rst1??st2??st3?; property reg_pipeline3_clk {?one?clk0??lk1??lk2??lk3?; property reg_pipeline3_ce {?e0??e1??e2,?e3?; property reg_pipeline3_rst {?st0?rst1??st2??st3?; property reg_output_clk {?one??lk0??lk1??lk2,?lk3?; property reg_output_ce {?e0??e1??e2??e3?; property reg_output_rst {?st0??st1??st2??st3}; property reg_signedab_0_clk {?one??lk0?clk1??lk2??lk3?; property reg_signedab_0_ce {?e0??e1??e2??e3?; property reg_signedab_0_rst {?st0??st1?rst2??st3?; property reg_signedab_1_clk {?one??lk0?clk1??lk2??lk3?; property reg_signedab_1_ce {?e0??e1??e2??e3?; property reg_signedab_1_rst {?st0??st1?rst2??st3?; property reg_addnsub1_0_clk {?one??lk0?clk1??lk2??lk3?; property reg_addnsub1_0_ce {?e0??e1??e2??e3?; property reg_addnsub1_0_rst {?st0??st1?rst2??st3?; property reg_addnsub1_1_clk {?one??lk0?clk1??lk2??lk3?; property reg_addnsub1_1_ce {?e0??e1??e2??e3?; property reg_addnsub1_1_rst {?st0??st1?rst2??st3?; property reg_addnsub3_0_clk {?one??lk0?clk1??lk2??lk3?; property reg_addnsub3_0_ce {?e0??e1??e2??e3?; property reg_addnsub3_0_rst {?st0??st1?rst2??st3?; property reg_addnsub3_1_clk {?one??lk0?clk1??lk2??lk3?; property reg_addnsub3_1_ce {?e0??e1??e2??e3?; property reg_addnsub3_1_rst {?st0??st1?rst2??st3?; property shift_in_a0 {?alse? ?rue?; property shift_in_b0 {?alse? ?rue?; property shift_in_a1 {?alse? ?rue?; property shift_in_b1 {?alse? ?rue?; property shift_in_a2 {?alse? ?rue?; property shift_in_b2 {?alse? ?rue?; property shift_in_a3 {?alse? ?rue?; property shift_in_b3 {?alse? ?rue?; property gsr {?nabled??isabled?; mult9x9 primitive mult9x9(ce0,ce1,ce2,ce3,clk0,clk1,clk2,clk3,rst0,rst1,rst2,rst3,signedab, a0,a1,a2,a3,a4,a5,a6,a7,a8,b0,b1,b2,b3,b4,b5,b6,b7,b8, sria0,sria1,sria2,sria3,sria4,sria5,sria6,sria7,sria8, srib0,srib1,srib2,srib3,srib4,srib5,srib6,srib7,srib8, sroa0,sroa1,sroa2,sroa3,sroa4,sroa5,sroa6,sroa7,sroa8, srob0,srob1,srob2,srob3,srob4,srob5,srob6,srob7,srob8, p0,p1,p2,p3,p4,p5,p6,p7,p8,p9,p10,p11,p12,p13,p14,p15,p16,p17) is black-box { property reg_inputa_clk {?one??lk0??lk1??lk2,?lk3?; property reg_inputa_ce {?e0??e1??e2??e3?; property reg_inputa_rst {?st0??st1??st2??st3}; property reg_inputb_clk {?one??lk0??lk1??lk2,?lk3?; property reg_inputb_ce {?e0??e1??e2??e3?; property reg_inputb_rst {?st0??st1??st2??st3};
 lattice semiconductor latticeecp -dsp sysdsp usage guide 15-17 property reg_pipeline_clk {?one??lk0??lk1??lk2??lk3?; property reg_pipeline_ce {ce0??e1??e2??e3?; property reg_pipeline_rst {?st0??st1??st2??st3?; property reg_output_clk {?one??lk0??lk1??lk2,?lk3?; property reg_output_ce {?e0??e1??e2??e3?; property reg_output_rst {?st0??st1??st2??st3}; property reg_signedab_0_clk {?one??lk0?clk1??lk2??lk3?; property reg_signedab_0_ce {?e0??e1??e2??e3?; property reg_signedab_0_rst {?st0??st1?rst2??st3?; property reg_signedab_1_clk {?one??lk0?clk1??lk2??lk3?; property reg_signedab_1_ce {?e0??e1??e2??e3?; property reg_signedab_1_rst {?st0??st1?rst2??st3?; property shift_in_a {?alse? ?rue}; property shift_in_b {?alse? ?rue}; property gsr {?nabled??isabled?; mult9x9mac primitive mult9x9mac(ce0,ce1,ce2,ce3,clk0,clk1,clk2,clk3,rst0,rst1,rst2,rst3,signedab,addnsub,accums - load, a0,a1,a2,a3,a4,a5,a6,a7,a8, b0,b1,b2,b3,b4,b5,b6,b7,b8, sria0,sria1,sria2,sria3,sria4,sria5,sria6,sria7,sria8, srib0,srib1,srib2,srib3,srib4,srib5,srib6,srib7,srib8, sroa0,sroa1,sroa2,sroa3,sroa4,sroa5,sroa6,sroa7,sroa8, srob0,srob1,srob2,srob3,srob4,srob5,srob6,srob7,srob8, accum0,accum1,accum2,accum3,accum4,accum5,accum6,accum7,accum8, accum9,accum10,accum11,accum12,accum13,accum14,accum15,accum16,accum17, accum18,accum19,accum20,accum21,accum22,accum23,accum24,accum25,accum26, accum27,accum28,accum29,accum30,accum31,accum32,accum33,overflow) is black-box { property reg_inputa_clk {?one??lk0??lk1??lk2,?lk3?; property reg_inputa_ce {?e0??e1??e2??e3?; property reg_inputa_rst {?st0??st1??st2??st3}; property reg_inputb_clk {?one??lk0??lk1??lk2,?lk3?; property reg_inputb_ce {?e0??e1??e2??e3?; property reg_inputb_rst {?st0??st1??st2??st3}; property reg_pipeline_clk {?one??lk0??lk1??lk2??lk3?; property reg_pipeline_ce {ce0??e1??e2??e3?; property reg_pipeline_rst {?st0??st1??st2??st3?; property reg_output_clk {?lk0??lk1??lk2??lk3}; property reg_output_ce {?e0??e1??e2??e3?; property reg_output_rst {?st0??st1??st2??st3}; property reg_signedab_0_clk {?one??lk0?clk1??lk2??lk3?; property reg_signedab_0_ce {?e0??e1??e2??e3?; property reg_signedab_0_rst {?st0??st1?rst2??st3?; property reg_signedab_1_clk {?one??lk0?clk1??lk2??lk3?; property reg_signedab_1_ce {?e0??e1??e2??e3?; property reg_signedab_1_rst {?st0??st1?rst2??st3?; property reg_addnsub_0_clk {?one?clk0??lk1??lk2??lk3?; property reg_addnsub_0_ce {?e0??e1??e2,?e3?; property reg_addnsub_0_rst {?st0?rst1??st2??st3?; property reg_addnsub_1_clk {?one?clk0??lk1??lk2??lk3?; property reg_addnsub_1_ce {?e0??e1??e2,?e3?; property reg_addnsub_1_rst {?st0?rst1??st2??st3?; property reg_accumsload_0_clk {?one??lk0,?lk1??lk2?clk3?; property reg_accumsload_0_ce {?e0??e1??e2??e3?; property reg_accumsload_0_rst {?st0??st1,?st2??st3?; property reg_accumsload_1_clk {?one??lk0,?lk1??lk2?clk3?;
 lattice semiconductor latticeecp -dsp sysdsp usage guide 15-18 property reg_accumsload_1_ce {?e0??e1??e2??e3?; property reg_accumsload_1_rst {?st0??st1,?st2??st3?; property shift_in_a {?alse? ?rue}; property shift_in_b {?alse? ?rue}; property gsr {?nabled??isabled?; mult9x9addsub primitive mult9x9addsub(ce0,ce1,ce2,ce3,clk0,clk1,clk2,clk3,rst0,rst1,rst2,rst3,signedab,addnsub, a00,a01,a02,a03,a04,a05,a06,a07,a08, a10,a11,a12,a13,a14,a15,a16,a17,a18, b00,b01,b02,b03,b04,b05,b06,b07,b08, b10,b11,b12,b13,b14,b15,b16,b17,b18, sria0,sria1,sria2,sria3,sria4,sria5,sria6,sria7,sria8, srib0,srib1,srib2,srib3,srib4,srib5,srib6,srib7,srib8, sroa0,sroa1,sroa2,sroa3,sroa4,sroa5,sroa6,sroa7,sroa8, srob0,srob1,srob2,srob3,srob4,srob5,srob6,srob7,srob8, sum0,sum1,sum2,sum3,sum4,sum5,sum6,sum7,sum8, sum9,sum10,sum11,sum12,sum13,sum14,sum15,sum16,sum17,sum18) is black-box { property reg_inputa0_clk {none??lk0??lk1??lk2??lk3}; property reg_inputa0_ce {?e0??e1,?e2?ce3?; property reg_inputa0_rst {rst0??st1??st2??st3?; property reg_inputa1_clk {none??lk0??lk1??lk2??lk3}; property reg_inputa1_ce {?e0??e1,?e2?ce3?; property reg_inputa1_rst {rst0??st1??st2??st3?; property reg_inputb0_clk {none??lk0??lk1??lk2??lk3}; property reg_inputb0_ce {?e0??e1,?e2?ce3?; property reg_inputb0_rst {rst0??st1??st2??st3?; property reg_inputb1_clk {none??lk0??lk1??lk2??lk3}; property reg_inputb1_ce {?e0??e1,?e2?ce3?; property reg_inputb1_rst {rst0??st1??st2??st3?; property reg_pipeline0_clk {?one?clk0??lk1??lk2??lk3?; property reg_pipeline0_ce {?e0??e1??e2,?e3?; property reg_pipeline0_rst {?st0?rst1??st2??st3?; property reg_pipeline1_clk {?one?clk0??lk1??lk2??lk3?; property reg_pipeline1_ce {?e0??e1??e2,?e3?; property reg_pipeline1_rst {?st0?rst1??st2??st3?; property reg_output_clk {?one??lk0??lk1??lk2,?lk3?; property reg_output_ce {?e0??e1??e2??e3?; property reg_output_rst {?st0??st1??st2??st3}; property reg_addnsub_0_clk {?one?clk0??lk1??lk2??lk3?; property reg_addnsub_0_ce {?e0??e1??e2,?e3?; property reg_addnsub_0_rst {?st0?rst1??st2??st3?; property reg_addnsub_1_clk {?one?clk0??lk1??lk2??lk3?; property reg_addnsub_1_ce {?e0??e1??e2,?e3?; property reg_addnsub_1_rst {?st0?rst1??st2??st3?; property reg_signedab_0_clk {?one??lk0?clk1??lk2??lk3?; property reg_signedab_0_ce {?e0??e1??e2??e3?; property reg_signedab_0_rst {?st0??st1?rst2??st3?; property reg_signedab_1_clk {?one??lk0?clk1??lk2??lk3?; property reg_signedab_1_ce {?e0??e1??e2??e3?; property reg_signedab_1_rst {?st0??st1?rst2??st3?; property shift_in_a0 {?alse? ?rue?; property shift_in_b0 {?alse? ?rue?; property shift_in_a1 {?alse? ?rue?; property shift_in_b1 {?alse? ?rue?; property gsr {?nabled??isabled?;
 lattice semiconductor latticeecp -dsp sysdsp usage guide 15-19 mult9x9addsubsum primitive mult9x9addsubsum(ce0,ce1,ce2,ce3,clk0,clk1,clk2,clk3,rst0,rst1,rst2,rst3,signedab,addnsub1,ad dnsub3, a00,a01,a02,a03,a04,a05,a06,a07,a08, a10,a11,a12,a13,a14,a15,a16,a17,a18, a20,a21,a22,a23,a24,a25,a26,a27,a28, a30,a31,a32,a33,a34,a35,a36,a37,a38, b00,b01,b02,b03,b04,b05,b06,b07,b08, b10,b11,b12,b13,b14,b15,b16,b17,b18, b20,b21,b22,b23,b24,b25,b26,b27,b28, b30,b31,b32,b33,b34,b35,b36,b37,b38, sria0,sria1,sria2,sria3,sria4,sria5,sria6,sria7,sria8, srib0,srib1,srib2,srib3,srib4,srib5,srib6,srib7,srib8, sroa0,sroa1,sroa2,sroa3,sroa4,sroa5,sroa6,sroa7,sroa8, srob0,srob1,srob2,srob3,srob4,srob5,srob6,srob7,srob8, sum0,sum1,sum2,sum3,sum4,sum5,sum6,sum7,sum8, sum9,sum10,sum11,sum12,sum13,sum14,sum15,sum16,sum17, sum18,sum19) is black-box { property reg_inputa0_clk {none??lk0??lk1??lk2??lk3}; property reg_inputa0_ce {?e0??e1,?e2?ce3?; property reg_inputa0_rst {rst0??st1??st2??st3?; property reg_inputa1_clk {none??lk0??lk1??lk2??lk3}; property reg_inputa1_ce {?e0??e1,?e2?ce3?; property reg_inputa1_rst {rst0??st1??st2??st3?; property reg_inputa2_clk {none??lk0??lk1??lk2??lk3}; property reg_inputa2_ce {?e0??e1,?e2?ce3?; property reg_inputa2_rst {rst0??st1??st2??st3?; property reg_inputa3_clk {none??lk0??lk1??lk2??lk3}; property reg_inputa3_ce {?e0??e1,?e2?ce3?; property reg_inputa3_rst {rst0??st1??st2??st3?; property reg_inputb0_clk {none??lk0??lk1??lk2??lk3}; property reg_inputb0_ce {?e0??e1,?e2?ce3?; property reg_inputb0_rst {rst0??st1??st2??st3?; property reg_inputb1_clk {none??lk0??lk1??lk2??lk3}; property reg_inputb1_ce {?e0??e1,?e2?ce3?; property reg_inputb1_rst {rst0??st1??st2??st3?; property reg_inputb2_clk {none??lk0??lk1??lk2??lk3}; property reg_inputb2_ce {?e0??e1,?e2?ce3?; property reg_inputb2_rst {rst0??st1??st2??st3?; property reg_inputb3_clk {none??lk0??lk1??lk2??lk3}; property reg_inputb3_ce {?e0??e1,?e2?ce3?; property reg_inputb3_rst {rst0??st1??st2??st3?; property reg_pipeline0_clk {?one?clk0??lk1??lk2??lk3?; property reg_pipeline0_ce {?e0??e1??e2,?e3?; property reg_pipeline0_rst {?st0?rst1??st2??st3?; property reg_pipeline1_clk {?one?clk0??lk1??lk2??lk3?; property reg_pipeline1_ce {?e0??e1??e2,?e3?; property reg_pipeline1_rst {?st0?rst1??st2??st3?; property reg_pipeline2_clk {?one?clk0??lk1??lk2??lk3?; property reg_pipeline2_ce {?e0??e1??e2,?e3?; property reg_pipeline2_rst {?st0?rst1??st2??st3?; property reg_pipeline3_clk {?one?clk0??lk1??lk2??lk3?; property reg_pipeline3_ce {?e0??e1??e2,?e3?; property reg_pipeline3_rst {?st0?rst1??st2??st3?; property reg_output_clk {?one??lk0??lk1??lk2,?lk3?; property reg_output_ce {?e0??e1??e2??e3?; property reg_output_rst {?st0??st1??st2??st3};
 lattice semiconductor latticeecp -dsp sysdsp usage guide 15-20 property reg_signedab_0_clk {?one??lk0?clk1??lk2??lk3?; property reg_signedab_0_ce {?e0??e1??e2??e3?; property reg_signedab_0_rst {?st0??st1?rst2??st3?; property reg_signedab_1_clk {?one??lk0?clk1??lk2??lk3?; property reg_signedab_1_ce {?e0??e1??e2??e3?; property reg_signedab_1_rst {?st0??st1?rst2??st3?; property reg_addnsub1_0_clk {?one??lk0?clk1??lk2??lk3?; property reg_addnsub1_0_ce {?e0??e1??e2??e3?; property reg_addnsub1_0_rst {?st0??st1?rst2??st3?; property reg_addnsub1_1_clk {?one??lk0?clk1??lk2??lk3?; property reg_addnsub1_1_ce {?e0??e1??e2??e3?; property reg_addnsub1_1_rst {?st0??st1?rst2??st3?; property reg_addnsub3_0_clk {?one??lk0?clk1??lk2??lk3?; property reg_addnsub3_0_ce {?e0??e1??e2??e3?; property reg_addnsub3_0_rst {?st0??st1?rst2??st3?; property reg_addnsub3_1_clk {?one??lk0?clk1??lk2??lk3?; property reg_addnsub3_1_ce {?e0??e1??e2??e3?; property reg_addnsub3_1_rst {?st0??st1?rst2??st3?; property shift_in_a0 {?alse? ?rue?; property shift_in_b0 {?alse? ?rue?; property shift_in_a1 {?alse? ?rue?; property shift_in_b1 {?alse? ?rue?; property shift_in_a2 {?alse? ?rue?; property shift_in_b2 {?alse? ?rue?; property shift_in_a3 {?alse? ?rue?; property shift_in_b3 {?alse? ?rue?; property gsr {?nabled??isabled?;
www.latticesemi.com 15-1 tn1008_02.1 october 2005 technical note tn1008 introduction coding style plays an important role in utilizing fpga resources. although many popular synthesis tools have sig- nificantly improved optimization algorithms for fpgas, it still is the responsibilit y of the user to g enerate meaningful and efficient hdl code to guide their synthesis tools to achi eve the best result for a specific architecture. this appli- cation note is intended to help designers establish useful hdl coding styles for lattice semiconductor fpga devices. it includes vhdl and verilog design guidelines for both novice and experienced users. the application note is divided into two sections. the gen eral coding styles for fpgas section provides an over- view for effective fpga designs. the following topics are discussed in detail: ?ierarchical coding ?esign partitioning ?ncoding methodologies for state machines coding styles for finite state machines (fsm) ?sing pipelines ?omparing if statements and case statements ?voiding non-intentional latches the hdl design with lattice semiconductor fpga devices section covers specific coding techniques and exam- ples: ?sing the lattice semiconduc tor fpga synthesis library ?mplementation of multiplexers ?reating clock dividers ?egister control signals (ce, lsr, gsr) ?sing pic features ?mplementation of memories ?reventing logic replication and fanout ?omparing synthesis results and place and route results general coding styles for fpga the following recommendations for comm on hdl coding styles will help user s generate robust and reliable fpga designs. hierarchical coding hdl designs can either be synthesized as a flat module or as many small hierarchical modules. each methodology has its advantages and disadvantages. since designs in smaller blocks are easier to keep track of, it is preferred to apply hierarchical structure to large and complex fpga designs. hierarchical coding methodology allows a group of engineers to work on one design at the same time. it speeds up design compilation, makes changing the imple- mentation of key blocks easier, and reduces the design period by allowing the re-use of design modules for current and future designs. in addition, it produces designs that are easier to understand. however, if the design mapping into the fpga is not optimal across hier archical boundaries, it will lead to lowe r device utilization and design perfor- mance. this disadvantage can be overcome with careful design considerations when choosing the design hierar- chy. here are some tips for building hierarchical structures: ?he top level should only contain instan tiation statements to call all major blocks any i/o instantiations should be at the top level any signals going into or out of the devices should be de clared as input, output or bi-directional pins at the top level hdl synthesis coding guidelines for lattice semiconductor fpgas
hdl synthesis coding guidelines lattice semiconductor for latt ice semiconductor fpgas 15-2 ?emory blocks should be kept separate from other code design partitioning by effectively partitioning the design, a designer can reduce overall run time and improve synthesis results. here are some recommendations for design partitioning. maintain synchronous sub-blocks by registering all outputs it is suggested to arrange the design boundary such that the outputs in each block are registered. registering out- puts helps the synthesis tool to consider the implementation of the combinatorial logic and registers into the same logic block. registering outputs also makes the application of timing constraints easier since it eliminates possible problems with logic optimization across design boundar ies. single clock is recommended for each synchronous block because it significantly reduces the timing considerat ion in the block. it leaves the adjustment of the clock relationships of the whole design at the top level of the hierarchy. figure 15-1 shows an example of synchronous blocks with registered outputs. figure 15-1. synchronous blocks with registered outputs keep related logic together in the same block keeping related logic and sharable resources in the same block allows the sharing of common combinatorial terms and arithmetic functions within the block. it also allows the synthesis tools to optimize the entire critical path in a single operation. since synthesis tools can only effectivel y handle optimization of certain amounts of logic, optimi- zation of critical paths pending across the boundaries may not be optimal. figure 15-2 shows an example of merg- ing sharable resource in the same block. figure 15-2. merge sharable resource in the same block separate logic with different optimization goals separating critical paths from non-critical paths may achieve efficient synthesis results. at the beginning of the proj- ect, one should consider the design in terms of performance requirements and resource requirements. if there are ab c ab ab c ab mux mux + + +
hdl synthesis coding guidelines lattice semiconductor for latt ice semiconductor fpgas 15-3 two portions of a block, one that needs to be optimized for area and a second that needs to be optimized for speed, they should be separated into two blocks. by doing this, different optimization strategies for each module can be applied without being limited by one another. keep logic with the same relaxation constraints in the same block when a portion of the design does not require high performance, this portion can be applied with relaxed timing constraints such as ?ulticycle? to achieve high utilizatio n of device area. relaxation constraints help to reduce overall run time. they can also help to efficiently save reso urces, which can be used on critical paths. figure 15-3 shows an example of grouping logic with the same relaxation constraint in one block. figure 15-3. logic with the same relaxation constraint keep instantiated code in separate blocks it is recommended that the ram block in the hierarchy be left in a separate block (figure 15-4). this allows for easy swapping between the ram behavioral code for simulation, and the code for technology instantiation. in addition, this coding style facilitates the integration of the isplever ipexpress tool into the synthesis process. figure 15-4. separate ram block keep the number fpga gates at 30 to 80 pfus per block this range varies based on the computer configuration, time required to complete each optimization run, and the targeted fpga routing resources. although a smaller block methodology allows more control, it may not produce the most efficient design since it does not provide the syn thesis tool enough logic to apply resource sharing algorithms. on the other hand, having a large number of gates per block gives the synthesis tool too much to work on and causes changes that affect more logic than necessary in an incremental or multi-block design flow. state encoding methodologi es for state machines there are several ways to encode a state machine, including binary encoding, gray-code encoding and one-hot encoding. state machines with binary or gray-code encoded states have minimal numbers of flip-flops and wide combinatorial functions, which are typically favored for cpld architec tures. however, most fpgas have many flip- flops and relatively narrow combinatorial function generators. binary or gray-code encoding schemes can result in inefficient implementation in terms of speed and density for fpgas. on the other hand, one-hot encoded state machine represents each state with one flip-flop. as a resul t, it decreases the width of combinatorial logic, which matches well with fpga architectures. for large and complex state machines, one-hot encoding usually is the preferable method for fpga architectures. for small state machines, binary encoding or gray-code encoding may be more efficient. there are many ways to ensure the state machine encoding scheme for a design. one can hard code the states in the source code by specifying a numerical value for each state. this approach ensures the correct encoding of the state machine but is more restrictive in the coding style. the enumerated codi ng style leaves the flexibility of state machine encoding to the synthesis tools. most synthesis to ols allow users to define encoding styles either through a ff1 b ff2 ff1 a ff2 state machine counter controller ram register file top
hdl synthesis coding guidelines lattice semiconductor for latt ice semiconductor fpgas 15-4 attributes in the source code or through the tools graphical user interface (gui). each synthesis tool has its own synthesis attributes and syntax for choosing the encoding styles. refer to the synthesis tools documentation for details about attributes syntax and values. the following syntax defines an enumeration type in vhdl: type type_name is (state1_name,state2_name,......,staten_name) here is a vhdl example of enumeration states: type state_type is (s0,s1,s2,s3,s4); signal current_state, next_state : state_type; the following are examples of synplify and leonardospectrum vhdl synthesis attributes. synplify : attribute syn_encoding : string; attribute syn_encoding of : type is "value "; -- the syn_encoding attribute has 4 values : sequential, onehot, gray and safe. leonardospectrum : -- declare type_encoding_style attribute -- not needed if the exemplar_1164 package is used type encoding_style is (binary, onehot, gray, random, auto); attribute type_encoding_style : encoding_style; ... attribute type_encoding_style of : type is onehot; in verilog, one must provide explicit state values for states. this can be done by using the bit pattern (e.g., 3'b001), or by defining a parameter and using it as the case item. the latter method is preferable. the following is an exam- ple using parameter for state values. parameter state1 = 2'h1, state2 = 2'h2; ... current_state = state2; // setting current state to 2'h2 the attributes in the source code override the default en coding style assigned during synthesis. since verilog does not have predefined attributes for synthesis, attributes are usually attached to the appropriate objects in the source code as comments. the attributes and their values are case sensitive and usually appear in lower case. the follow- ing examples use attributes in verilog source code to specify state machine encoding style. synplify : reg[2:0] state; /* synthesis syn_encoding = "value" */; // the syn_encoding attribute has 4 values : sequential, onehot, gray and safe. in leonardospectrum, it is recommended to set the state machine variable to an enumeration type with enum pragma. once this is set in the source code, encoding schemes can be selected in the leonardospectrum gui. leonardospectrum : parameter /* exemplar enum */ s0 = 0, s1 = 1, s2 = 2, s3 = 3, s4 = 4; reg [2:0] /* exemplar enum */ present_state, next_state ; in general, synthesis tools will select the optimal en coding style that takes into acco unt the target device architec- ture and size of the decode logic. one can always apply synthesis attributes to override the default encoding style if necessary.
hdl synthesis coding guidelines lattice semiconductor for latt ice semiconductor fpgas 15-5 coding styles for fsm a finite state machine (fsm) is a hardware component that advances from the current state to the next state at the clock edge. as mentioned in the encoding methodologies for state machines section, the preferable scheme for fpga architectures is one-hot encoding. this section discusses some common issues encountered when con- structing state machines, such as in itialization and state coverage, and sp ecial case statements in verilog. general state machine description generally, there are two approaches to describe a state mach ine. one is to use one process/block to handle both state transitions and state outputs. the other is to separate the state transition and the state outputs into two differ- ent process/blocks. the latter approach is more straightforward because it separates the synchronous state regis- ters from the decoding logic used in the computation of the next state and the outputs. this will make the code easier to read and modify, and makes the documentation more efficient. if the outputs of the state machine are combinatorial signals, the second approach is almost al ways necessary because it will prevent the accidental reg- istering of the state machine outputs. the following examples describe a simple state machine in vhdl and verilog. in the vhdl example, a sequential process is separated from the combinatorial process. in verilog code, two always blocks are used to describe the state machine in a similar way. vhdl example for state machine . . . architecture lattice_fpga of dram_refresh is type state_typ is (s0, s1, s2, s3, s4); signal present_state, next_state : state_typ; begin -- process to update the present state registers: process (clk, reset) begin if (reset='1') then present_state <= s0; elsif clk'event and clk='1' then present_state <= next_state; end if; end process registers; -- process to calculate the next state & output transitions: process (present_state, refresh, cs) begin ras <= '0'; cas <= '0'; ready <= '0'; case present_state is when s0 => ras <= '1'; cas <= '1'; ready <= '1'; if (refresh = '1') then next_state <= s3; elsif (cs = '1') then next_state <= s1; else next_state <= s0; end if; when s1 => ras <= '0'; cas <= '1'; ready <= '0'; next_state <= s2; when s2 => ras <= '0'; cas <= '0'; ready <= '0'; if (cs = '0') then next_state <= s0; else next_state <= s2; end if; when s3 => ras <= '1'; cas <= '0'; ready <= '0'; next_state <= s4; when s4 => ras <= '0'; cas <= '0'; ready <= '0'; next_state <= s0; when others => ras <= '0'; cas <= '0'; ready <= '0'; next_state <= s0; end case; end process transitions; . . . verilog example for state machine . . . parameter s0 = 0, s1 = 1, s2 = 2, s3 = 3, s4 = 4; reg [2:0] present_state, next_state; reg ras, cas, ready; // always block to update the present state always @ (posedge clk or posedge reset) begin if (reset) present_state = s0; else present_state = next_state; end // always block to calculate the next state & outputs always @ (present_state or refresh or cs) begin next_state = s0; ras = 1'bx; cas = 1'bx; ready = 1'bx; case (present_state) s0 : if (refresh) begin next_state = s3; ras = 1'b1; cas = 1'b0; ready = 1'b0; end else if (cs) begin next_state = s1; ras = 1'b0; cas = 1'b1; ready = 1'b0; end else begin next_state = s0; ras = 1'b1; cas = 1'b1; ready = 1'b1; end s1 : begin next_state = s2; ras = 1'b0; cas = 1'b0; ready = 1'b0; end s2 : if (~cs) begin next_state = s0; ras = 1'b1; cas = 1'b1; ready = 1'b1; end else begin next_state = s2; ras = 1'b0; cas = 1'b0; ready = 1'b0; end s3 : begin next_state = s4; ras = 1'b1; cas = 1'b0; ready = 1'b0; end s4 : begin next_state = s0; ras = 1'b0; cas = 1'b0; ready = 1'b0; end endcase end . . .
hdl synthesis coding guidelines lattice semiconductor for latt ice semiconductor fpgas 15-6 initialization and default state a state machine must be initialized to a valid state after power-up. this can be done at the device level during power up or by including a reset operation to bring it to a known state. for all lattice semiconductor fpga devices, the global set/reset (gsr) is pulsed at power-up, regardless of the function defined in the design source code. in the above example, an asynchronous reset can be used to bring the state machine to a valid initialization state. in the same manner, a state mach ine should have a default state to ensure the state machine w ill not go into an invalid state if not all the possible combinations are clearly defined in the design source code. vhdl and verilog have different syntax for default state declaration. in vhdl, if a case statement is used to construct a state machine, when others?should be used as the last statement before the end of the statement, if an if-then- else statement is used, else should be the last assignment for the state machine. in verilog, use ?efault as the last assignment for a case statement, and use else for the if-then-else statement. full case and parallel case specification in verilog verilog has additional attributes to define the default states without writing it specifically in the code. one can use full_case to achieve the same performance as default. the following examples show the equivalent representa- tions of the same code in synplify. leonardospectrum allows users to apply verilog-specific options in the gui set- tings. parallel_case makes sure that all the statements in a case statement are mutually exclusive. it is used to inform the synthesis tools that only one case can be true at a time. the syntax for this attribute in synplify is as follows: // synthesis parallel_case using pipelines in the designs pipelining can improve design performance by restructuring a long data path with several levels of logic and break- ing it up over multiple clock cycles. this method allows a faster clock cycle by relaxing the clock-to-output and setup time requirements between the registers. it is usually an advantageous structure for creating faster data paths in register-rich fpga devices. knowledge of each fpga architecture helps in planning pipelines at the when others in vhdl ... architecture lattice_fpga of fsm1 is type state_typ is (deflt, idle, read, write); signal next_state : state_typ; begin process(clk, rst) begin if (rst='1') then next_state <= idle; dout <= '0'; elsif (clk'event and clk='1') then case next_state is when idle => next_state <= read; dout <= din(0); when read => next_state <= write; dout <= din(1); when write => next_state <= idle; dout <= din(2); when others => next_state <= deflt; dout <= '0'; end case; end if; end process; ... default clause in verilog ... // define state labels explicitly parameter deflt=2'bxx; parameter idle =2'b00; parameter read =2'b01; parameter write=2'b10; reg [1:0] next_state; reg dout; always @(posedge clk or posedge rst) if (rst) begin next_state <= idle; dout <= 1'b0; end else begin case(next_state) idle: begin dout <= din[0]; next_state <= read; end read: begin dout <= din[1]; next_state <= write; end write: begin dout <= din[2]; next_state <= idle; end default: begin dout <= 1'b0; next_state <= deflt; end case (current_state) // synthesis full_case 2?00 : next_state <= 2?01; 2?01 : next_state <= 2?11; 2?11 : next_state <= 2?00; case (current_state) 2?00 : next_state <= 2?01; 2?01 : next_state <= 2?11; 2?11 : next_state <= 2?00; default : next_state <= 2bx;
hdl synthesis coding guidelines lattice semiconductor for latt ice semiconductor fpgas 15-7 beginning of the design cycle. when the pipelining technique is applied, special care must be taken for the rest of the design to account for the additiona l data path latency. the following illu strates the same da ta path before (figure 15-5) and after pipelining (figure 15-6). figure 15-5. before pipelining figure 15-6. after pipelining before pipelining, the clock speed is determined by the clock-to-out time of the source register, the logic delay through four levels of combinatorial logic, the associated routing delays, and the setup time of the destination regis- ter. after pipelining is applied, the clock speed is significantly improved by reducing the delay of four logic levels to one logic level and the associated routing delays, even though the rest of the timing requirements remain the same. it is recommended to check the place and route timing report to ensure that the pipelined design gives the desired performance. comparing if statement and case statement case and if-then-else statements are common for seque ntial logic in hdl designs. the if-then-else state- ment generally generates priority-encoded logic, whereas the case statement implements balanced logic. an if- then-else statement can contain a set of different expressions while a case statement is evaluated against a common controlling expression. both st atements will give the same functional implementation if the decode condi- tions are mutually exclusive, as shown in the following vhdl codes. ff1 ff1 comb. function comb. function slow clock comb. function ff1 ff2 comb. function ff3 comb. function ff4 comb. function fast clock -- case statement ?mutually exclusive conditions process (s, x, y, z) begin o1 <= ?? o2 <= ?? o3 <= ?? case (s) is when ?0?=> o1 <= x; when ?1?=> o2 <= y; when ?0?=> o3 <= z; end case; end process; -- if-then-else ?mutually exclusive conditions process (s, x, y, z) begin o1 <= ?? o2 <= ?? o3 <= ?? if s = ?0?then o1 <= x; elsif s = ?1?then o2 <= y; elsif s = ?0?then o3 <= z; end if; end process;
hdl synthesis coding guidelines lattice semiconductor for latt ice semiconductor fpgas 15-8 however, the use of if-then-else construct could be a ke y pitfall to make the design more complex than necessary, because extra logic are needed to build a priority tree. consider the following examples: if the decode conditions are not mutu ally exclusive, if-then-else constr uct will cause the last output to be dependent on all the control signals. the equation for o3 output in example a is: o3 <= z and (s3) and (not (s1 and s2)); if the same code can be wri tten as in example b, most of the synthe sis tools will remove the priority tree and decode the output as: o3 <= z and s3; this reduces the logic requirement for the state machine decoder. if each output is indeed dependent of all of the inputs, it is better to use a case statement since case statements provid e equal branches for each output. avoiding non-intentional latches synthesis tools infer latches from incomplete conditional expressions, such as an if-then-else statements with- out an else clause. to avoid non-intentional latches, one should specify all conditions explicitly or specify a default assignment. otherwise, latches will be inse rted into the resulting rtl code, re quiring additional resources in the device or introducing combinatorial feedback loops that create asynchronous timing problems. non-intentional latches can be avoided by using clocked registers or by employing any of the following coding techniques: ?ssigning a default value at the beginning of a process ?ssigning outputs for all input conditions ?sing else, (when others) as the final clause another way to avoid non-intentional latches is to check th e synthesis tool outputs. most of the synthesis tools give warnings whenever there are latches in the design. c hecking the warning list afte r synthesis will save a tremen- dous amount of effort in trying to determine why a design is so large later in the place and route stage. hdl design with lattice se miconductor fpga devices the following section discusses the hdl coding techniques utilizing specific lattice semiconductor fpga system features. this kind of architecture-s pecific coding style will further improve resource utilizatio n and enhance the performance of designs. lattice semiconduct or fpga synt hesis library the lattice semiconductor fpga synthesi s library includes a number of library elements to perform specific logic functions. these library elements are optimized for lattice semiconductor fpgas and have high performance and utilization. the following are the classifications of the lib rary elements in the lattic e semiconductor fpga synthe- --a: if-then-elese statement: complex o3 equations process(s1, s2, s3, x, y, z) begin o1 <= ?? o2 <= ?? o3 <= ?? if s1 = ??then o1 <= x; elsif s2 = ??then o2 <= y; elsif s3 = ??then o3 <= z; end if; end process; --b: if-then-else statement: simplified o3 equation process (s1, s2, s3, x, y, z) begin o1 <= ?? o2 <= ?? o3 <= ?? if s1 = ??then o1 <= x; end if; if s2 = ??then o2 <= y; end if; if s3 <= ??then o3 <= z; end if; end process;
hdl synthesis coding guidelines lattice semiconductor for latt ice semiconductor fpgas 15-9 sis library. the definitions of these library elements can be found in the reference manuals section of the isp- lever on-line help system. ?ogic gates and luts ?omparators, adders, subtractors ?ounters ?lip-flops and latches memory, 4e-specific memory (block ram function) multiplexors ?ultipliers ?ll i/o cells, includ ing i/o flip-flops pic cells ?pecial cells, including pll, gsr, boundary scan, etc. ?psc elements ipepxress, a parameterized module complier optimized for lattice fpga devices, is available for more complex logic functions. ipexpress supports generation of library elements with a number of different options such as plls and creates parameterized logic functions such as pfu and ebr memory, multipliers, adders, subtractors, and counters. ipexpress accepts options that specify parameters for parameterized modules such as data path mod- ules and memory modules, and produces a circuit descript ion with lattice semiconductor fpga library elements. output from ipexpress can be written in edif, vhdl, or ver ilog. in order to use synthesi s tools to utilize the lattice fpga architectural features, it is strongly recommended to use ipexpress to generate modules for source code instantiation. the following are examples of lattice semiconductor fpga modules supported by ipexpress: ?ll ?emory implemented in pfu: ?synchronous single-port ram, synchronous dual -port ram, synchronous rom, synchronous fifo ?emory implemented with ebr: ?uad-port block ram, dual-port block ram, single-port block ram, rom, fifo ?ther ebr based functions ?ultiplier, cam ?fu based functions ?ultiplier, adder, subtractor, adder/subtractor, linear feedback shifter, counter mpi/system bus ipexpress is especially efficient when generating high pin count modules as it saves time in manually cascading small library elements from the synthesis library. detailed information about ipexpress and its user guide can be found in the isplever help system.
hdl synthesis coding guidelines lattice semiconductor for latt ice semiconductor fpgas 15-10 implementing multiplexers the flexible configurations of luts can realize any 4-, 5-, or 6-input logic function like 2-to-1, 3-to-1 or 4-to-1 multi- plexers. larger multiplexers can be efficiently created by programming multiple 4-input luts. synthesis tools camn automatically infer lattice fpga optimized multiplexer library elements based on the behavioral description in the hdl source code. this provid es the flexibility to the mapper and place an d route tools to conf igure the lut mode and connections in the most optimum fashion. clock dividers there are two ways to implement clock dividers in lattice semiconductor fpga devices. the first is to cascade the registers with asynchronous clocks. the register output feed s the clock pin of the next register (figure 15-7). since the clock number in each pfu is limited to two, any clock divider with more than two bits will require multiple pfu implementations. as a resul t, the asynchronous daisy chaini ng implementation of clock divider will be slower due to the inter-pfu routing delays. this kind of delays is usually ambiguous and inconsistent because of the nature of fpga routing structures. figure 15-7. daisy chaining of flip-flops 16:1 mux process(sel, din) begin if (sel="0000") then muxout <= din(0); elsif (sel="0001") then muxout <= din(1); elsif (sel="0010") then muxout <= din(2); elsif (sel="0011") then muxout <= din(3); elsif (sel="0100") then muxout <= din(4); elsif (sel="0101") then muxout <= din(5); elsif (sel="0110") then muxout <= din(6); elsif (sel="0111") then muxout <= din(7); elsif (sel="1000") then muxout <= din(8); elsif (sel="1001") then muxout <= din(9); elsif (sel="1010") then muxout <= din(10); elsif (sel="1011") then muxout <= din(11); elsif (sel="1100") then muxout <= din(12); elsif (sel="1101") then muxout <= din(13); elsif (sel="1110") then muxout <= din(14); elsif (sel="1111") then muxout <= din(15); else muxout <= '0'; end if; end process; lu lu pfu pfu d d
hdl synthesis coding guidelines lattice semiconductor for latt ice semiconductor fpgas 15-11 the following are the hdl representations of the design in figure 15-7. the preferable way is to fully employ the pfu's natural ?ipple-mode. a single pfu can support up to 8-bit ripple functions with fast carry logic. figure 15-8 is an example of 4-bit counter in pfu ripple mode. in lattice semicon- ductor fpga architectures, an internal generated clock can get on the clock spine for small skew clock distribution, further enhancing the performance of the clock divider. figure 15-8. use pfu ?ipple mode here are the hdl representations of the design in figure 15-8. -- vhdl example of daisy chaining ff ... -- 1st ff to divide clock in half clk_div1: process(clk, rst) begin if (rst='1') then clk1 <= '0'; elsif (clk'event and clk='1') then clk1 <= not clk1; end if; end process clk_div1; -- 2nd ff to divide clock in half clk_div2: process(clk1, rst) begin if (rst='1') then clk2 <= '0'; elsif (clk1'event and clk1='1') then clk2 <= not clk2; end if; end process clk_div2; //verilog example of daisy chaining ff ... always @(posedge clk or posedge rst) begin if (rst) clk1 = 1'b0; else clk1 = !clk1; end always @(posedge clk1 or posedge rst) begin if (rst) clk2 = 1'b0; else clk2 = !clk2; end ... divby2 divby4 divby8 divby16 lut in ripple mode 4-bit counter -- vhdl : ?ipplemode?clock divider ... count4: process(clk, rst) begin if (rst='1') then cnt <= (others=>'0'); elsif (clk'event and clk='1') then cnt <= cnt + 1; end if; end process count4; divby4 <= cnt(1); divby16 <= cnt(3); //verilog : ?ipplemode?clock divider ... always @(posedge clk or posedge rst) begin if (rst) cnt = 4'b0; else cnt = cnt + 1'b1; end assign divby4 = cnt[1]; assign divby16 = cnt[3]; ...
hdl synthesis coding guidelines lattice semiconductor for latt ice semiconductor fpgas 15-12 register control signals the general-purpose latches/ffs in the pfu are used in a variety of configurations depending on device family. for example, the lattice ec, ecp, sc and xp family of device s clock, clock enable and lsr control can be applied to the registers on a slice basis. each slice contains two lu t4 lookup tables feeding two registers (programmed asto be in ff or latch mode), and some associated logic that allows the luts to be combined to perform functions such as lut5, lut6, lut7 and lut8. there is control logic to perform set/reset functions (prgorammable as synchro- nous/asynchronous), clock select, chip-select and wider ram/rom functions. the orca series 4 family of devices clock, clock enable and lsr control can be applied to the registers on a nibble-wide basis. when writing design codes in hdl, keep the architecture in mind to avoid wasting resources in the device. here are several points for consideration: ?f the register number is not a multiple of 2 or 4 (dependent on device family), try to code the registers in a way that all registers share the same clock, and in a way that all registers share the same control signals. lattice semiconductor fpga devices have multiple dedicated clock enable signals per pfu. try to code the asynchronous clocks as clock enables, so that pfu clock signals can be released to use global low- skew clocks. try to code the registers with local synchronous set/reset and global asynchronous set/reset for more detailed architecture information, refer to the lattice semiconductor fpga data sheets. clock enable figure 15-9 shows an example of gated clocking. gating cl ock is not encouraged in digital designs because it may cause timing issues such as unexpected clock skews. th e structure of the pfu makes the gating clock even more undesirable since it will use up all the clock resources in one pfu and sometimes wast e the ff/ latches resources in the pfu. by using the clock enable in the pfu, the same functionality can be achieved without worrying about timing issues as only one signal is co ntrolling the clock. since only one clock is used in the pfu, all related logic can be implemented in one block to achieve better performance. figure 15-10 shows the design with clock enable signal being used. figure 15-9. asynchronous: gated clocking figure 15-10. synchronous: clock enabling the vhdl and verilog coding for clock enable are as shown in figure 15-10. dq din qout clk gate d s a b q din qout clk clken -- vhdl example for clock enable ... clock_enable: process(clk) begin if (clk'event or clk='1') then if (clken='1') then qout <= din; end if; end if; end process clock_enable; // verilog example for clock enable ... always @(posedge clk) qout <= clken ? din : qout; ...
hdl synthesis coding guidelines lattice semiconductor for latt ice semiconductor fpgas 15-13 the following are guidelines for coding the clock enable in lattice semiconductor fpgas: ?lock enable is only supported by ffs, not latches. ?ibble wide ffs and slices inside a pfu share the same clock enable ?ll flip-flops in the lattice semiconductor fpga library have a positive clock enable signal ?n the orca series 4 architecture, the clock enable signal has the higher priority over synchronous se t/reset by default. however, it can be programmed to have the priority of synchronous lsr over the prior - ity of clock enable. this can be achieved by instantiating the library element in the source code. for exam - ple, the library element fd1p3ix is a flip-flop that allo ws synchronous clear to override clock enable. users can also specify the priority of generic coding by setting the priority of the control signals differently. the following examples demonstrate coding methodologies to help the synthesis tools to set the higher pri - ority of clock enable or synchronous lsr. -- vhdl example of sync. lsr over ce ... count8: process(clk, grst) begin if (grst = '1') then cnt <= (others => '0'); elsif (clk'event and clk='1') then -- lsr over ce: sync. set/reset has higher priority if (lrst = '1') then cnt <= (others => '0'); elsif (cken = '1') then cnt <= cnt + 1; end if; // verilog example of sync. lsr over ce ... always @(posedge clk or posedge grst) begin if (grst) cnt = 4'b0; else if (lrst) cnt = 4'b0; else if (cken) cnt = cnt + 1'b1; end ... -- vhdl example of ce over sync. lsr ... count8: process(clk, grst) begin if (grst = '1') then cnt <= (others => '0'); elsif (clk'event and clk='1') then -- ce over lsr: clock enable has higher priority if (cken = '1') then cnt <= cnt + 1; elsif (lrst = '1') then cnt <= (others =>'0'); end if; end if; e n d p r ocess cou nt 8; // verilog example of ce over sync. lsr ... always @(posedge clk or posedge grst) begin if (grst) cnt = 4'b0; else if (cken) cnt = cnt + 1'b1; else if (lrst) cnt = 4'b0; end... set / reset there are two types of set/reset functions in lattice se miconductor fpgas: global (gsr) and local (lsr). the gsr signal is asynchronous and is used to initialize all registers during configuration. it can be activated either by an external dedicated pin or from internal logic after configuration. the local set/reset signal may be synchro- nous or asynchronous. gsr is pulsed at power up to either set or reset the registers depending on the configura- tion of the device. since the gsr signal has dedicated routing resources that connect to the set and reset pin of the flip-flops, it saves general-purpose routing and buffering resources and improves overall performance. if asyn- chronous reset is used in the design, it is recommended to use the gsr for this function, if possible. the reset sig- nal can be forced to be gsr by the in stantiation library element. synthesis tools will automa tically infer gsr if all
hdl synthesis coding guidelines lattice semiconductor for latt ice semiconductor fpgas 15-14 registers in the design are asynchronously set or reset by the same wire. the following examples show the correct syntax for instantiating gsr in the vhdl and verilog codes. use pic features using i/o registers/latches in pic moving registers or latches into input/output cells (pic) may reduce the number of pfus used and decrease rout- ing congestion. in addition, it reduces setup time requirements for incoming data and clock-to-output delay for out- put data, as shown in figure 15-11. most synthesis tools will infe r input registers or outp ut registers in pic if possible. users can set synthesis attributes in the specific tools to turn off the auto-inf er capability. users can also instantiate library elements to control the implementation of pic resource usage. figure 15-11. moving ff into pic input register figure 15-12. moving ff into pic output register // verilog example of gsr instantiation module gsr_test(clk, rst, cntout); input clk, rst; output[1:0] cntout; reg[1:0] cnt; gsr u1 (.gsr(rst)); always @(posedge clk or negedge rst) begin if (!rst) cnt = 2'b0; else cnt = cnt + 1; end assign cntout = cnt; endmodule -- vhdl example of gsr instantiation library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity gsr_test is port (rst, clk: in std_logic; cntout : out std_logic_vector(1 downto 0)); end gsr_test; architecture behave of gsr_test is signal cnt : std_logic_vector(1 downto 0); begin u1: gsr port map (gsr=>rst); process(clk, rst) begin if rst = '1' then cnt <= "00"; elsif rising_edge (clk) then cnt <= cnt + 1; end if; end process; cntout <= cnt; end behave; dq in_sig pic before using input register pfu dq in_sig pic after using input register dq out_sig pic pic before using output register pfu dq out_sig after using output register
hdl synthesis coding guidelines lattice semiconductor for latt ice semiconductor fpgas 15-15 inferring bi-directional i/o users can either structurally instantiate the bi-direction al i/o library elements, or behaviorally describe the i/o paths to infer bi-directional buffers. the following vhdl and verilog examples show how to infer bi-directional i/o buffers. specifying i/o types and locations users can either assign i/o types and unique i/o locations in the preference editor or specify them as attributes in the vhdl or verilog source code. the following examples show how to add attributes in the synplify and leonardo- spectrum synthesis tool sets. for a complete list of supported attributes, refer to the hdl attributes section of the isplever on-line help system. -- vhdl example of specifying i/o type and location attributes for synplify & leonardo entity cnt is port(clk: in std_logic; res: out std_logic); attribute levelmode: string: attribute levelmode of clk : signal is ?stl2? attribute loc of clk : signal is v2; attribute levelmode of res : signal is ?stl2? attribute loc of res : signal is v3; end entity cnt; -- verilog example of specifying i/o type and location attributes for synplify & leonardo module cnt(clk,res); input clk /* synthesis levelmode=sstl2?loc=?2*/; output res /* synthesis level mode=?stl2?loc=?3?*/; ... // exemplar begin // exemplar attribut e clk levelmode sstl2 // exemplar attribute clk loc v2 // exemplar attribut e res levelmode sstl2 // exemplar attribute res loc v3 // exemplar end endmodule // inferring bi-directional i/o in verilog module bidir_infer (a, b, dir); inout a, b; input dir; assign b = (dir) ? a : 1'bz; assign a = (~dir) ? b : 1'bz; endmodule -- inferring bi-directional i/o in vhdl library ieee; use ieee.std_logic_1164.all; entity bidir_infer is port(a, b : inout std_logic; dir : in std_logic); end bidir_infer; architecture lattice_fpga of bidir_infer is begin b <= a when (dir='1') else 'z'; a <= b when (dir='0') else 'z'; end lattice_fpga
hdl synthesis coding guidelines lattice semiconductor for latt ice semiconductor fpgas 15-16 implementation of memories although an rtl description of ram is portable and the coding is straightforward, it is not recommended because the structure of ram blocks in every architecture is uni que. synthesis tools are not optimized to handle ram imple- mentation and thus generate inefficient netlists for device fitting. for lattice semiconductor fpga devices, ram blocks should be generated through ipexpress as shown in the following screen shot. when implementing large memories in the design, it is recommended to construct the memory from the enhanced block ram (ebr) components found in every lattice semiconductor fpga device. when implementing small memories in the design, it is recommended to construct the memory from the resources in the pfu. the memory utilizing resources in the pfu can also be generated by ipexpress. lattice semiconductor fpgas support many different memo ry types including synchronous dual-port ram, syn- chronous single-port ram, synchronous fifo and synchronous rom. for more information on supported mem- ory types per fpga architecture, please consul t the lattice semiconductor fpga data sheets. preventing logic repli cation and limited fanout lattice semiconductor fpga device architectures are de signed to handle high signal fanouts. when users make use of clock resources, there will be no hindrance on fanou t problems. however, synthesis tools tend to replicate logic to reduce fanout during logic synthesis. for example, if the code implies clock enable and is synthesized with speed constraints, the synthesis tool may replicate the clock enable logic. this kind of logic replication occupies more resources in the devices and makes performance checking more difficult. it is recommended to control the logic replication in synthesis process by using attributes for high fanout limit.
hdl synthesis coding guidelines lattice semiconductor for latt ice semiconductor fpgas 15-17 in the synplicity project gui, under the implementation options => devices tab, users can set the fanout guide value to 1000 instead of using the default value of 100. this will guide the tool to allow high fanout signals without replicating the logic. in the leonardospectrum tool project gui, under technology => advanced settings, users can set the max fanout to be any number instead of the default value ?? use isplever project naviga tor results for device utilization and performance many synthesis tools give usage reports at the end of a successful synthesis. these reports show the name and the number of library elements used in the design. the data in these reports do not represent the actual implemen- tation of the design in the final pl ace and route tool because the edif ne tlist will be further optimized during map- ping and place and route to achieve the best results. it is strongly recommended to use the map report and the pa r r e p o r t i n t h e i s p l e v e r p r o j e c t n a v i g a t o r t o o l t o u n derstand the actual resource utilization in the device. although the synthesis report also provides a performanc e summary, the timing information is based on estimated logic delays only. the place & route trace report in the isplever project navigator gives accurate perfor- mance analysis of the design by including actual logic and routing delays in the paths. technical support assistance hotline: 1-800-lattice (north america) +1-503-268-8001 (outside north america) e-mail: techsupport@latticesemi.com internet: www.latticesemi.com
www.latticesemi.com 16-1 tn1010_02.0 july 2004 technical note tn1010 introduction lattice semiconductors isplever software, together with lattice semiconductors catalog of programmable devices, provides options to help meet design timing and logic utilizatio n requirements. additionally, for those instances where objec tives push the capabilitie s of the device archit ecture, isplever provides the tools for meet- ing the most challenging requirements. for the most aggressive design requir ements, the designer should become fa miliar with a variety of timing con- straints (called preferences) and place and route (par) techniques for providing the optimal par results as dis- cussed in technical note number tn1018, lattice semiconductor successful place and route. if performance goals cannot be met with fpga timing preferences and additional levels of the place & route design process, improved performance can be achieved by di recting the physical layout of the circuit in the fpga. this step, often referred to as floorplanning, is done by specifying fpga location preferences. this application note explains what floorp lanning is, when it should be used, and how it is done with respect to lat- tice semiconductor fpga designs. this document is divided into four major sections: ?loorplanning definition, logical and physical ?hen to floorplan, general versus specific reasons ?ow to floorplan: grouping constraints, ex amples, and floorplanner gui presentation ?pecial considerations, large and special groupings supported architectures floorplanning can be done on all lattice semiconductor fpga architectures. related documentation designers are enc ouraged to reference the ispl ever on-line do cumentation. floorplanning definition floorplanning a digital logic design for implementation in a programmable device involves the physical or logical partitioning of the design elements which results in a c hange in the physical placement or implementation of the design elements. in other words, floorplanning is the grouping of design elements in a certain way to improve the performance of a design. with lattice semiconductor fpgas, floorplanning is an op tional methodology to help designers improve the perfor- mance and density of a fully, automatically placed and routed design. floorplanning is particularly useful in struc- tured designs and data path logic. design floorplanning is very powerful and provides a combination of automation and user control for design reuse and modular, hierarchical, and incremental design flows. complex fpga design management lattice semiconductor fpgas can impl ement large system designs that cont ain millions of gat es, hundreds of thousands of embedded memory bits, and intellectual property (ip) components. design teams often work on large designs. the design complexity requires eda tools to manage and optimize the design. large design management is difficult, but performance optimizati on is even more difficult. optimization requires many design iterations when adding or modifying componen ts. complex, large system des igns require the following: ?he use of modular, hierarchical, or incremental design methods ?oftware that makes management and optimization easier lattice semiconductor design floorplanning
lattice semiconductor lattice semi conductor design floorplanning 16-2 ?se of ip blocks reuse of previously optimized design elements by controlling the placement of specifie d logic elements, design floorplannin g methodologies help designers meet the requirements of large system design. floorplanning design flow in both traditional and floorp lanning fpga design flows, the designer divides the system into modules. the mod- ules can be individual circuits, parts of circuits, or part s of the design hierarchy. after module design and optimiza- tion, the designer integrates the modu les into the system. finally, the desi gner tests and opt imizes the system. in the traditional flow, the system may not meet performance requirements even if each module meets the require- ments before integration. even when timing requirements have been satisfied, changes to one module can affect the performance of others. re-optimiz ing modules to meet system performance results in many design iterations. floorplanning methodologies assist in the design, testing, and optimization of each individual module while retain- ing the optimized characteristics of the individual modules. module integration into t he system requires only system optimization between modules. the floorplanning meth odologies provide addi tional flexibility by allowing the isp- lever software to automatically place defined modules, or allowing the user to control the placement of specific modules, which provide performance preservation and optimization. when to floorplan floorplanning methodologies are intended to assist us ers who require some degree of handcrafting for their designs. the designer must understand both the details of the device architectures and the ways floorplanning can be used to refine a design. successful floorplanning is very much an iterative process and it can take time to develop a floorplan that outperforms an automatic, software processed design. because of the nature of floorplan- ning and its interaction with the automatic map and par software tools, several prerequisites are necessary in order to floorplan a design successfully. ?etailed knowledge of the specifics of the target architecture and device ?etailed knowledge of the specifics of the design being implemented ? design that lends itself to floorplanning ? willingness to iterate a floorplan to achieve the desired results ?ealistic performance and density goals for lattice semiconductor fpgas, the general rule-of-thumb is that floorplanning should be considered when the performance needed cannot be met and routing delays acco unt for over 60% of the critical path delays. that is, interacting components are too far apart in the fpga array to achieve short routing delays. this has shown to be a problem especially with large designs in high density fpgas because of the po ssibilities of long distance routes. as programmable logic design densities continue to escalate beyond 100,000 gates, traditional design flow ? design entry to synthesis to place an d route will sometimes not yield predic table, timely, and optimized results. note that the guidelines discussed above only apply to designs that have been routed by the software for several routing iterations. the defaul t number of routing iteratio ns via the isplever project na vigator is variable depend- ing on the lattice semiconductor fpga device family chosen. a note on delays: path delays in programmable devices are made up of two parts: logical delays and routing delays. logical delays in this context are delays through components, such as a a programmable function unit (pfu), a programmable input/output (pio), a slice, or an embedded function (i.e. a block ram, pll, or embedded fpsc asic). the routing delay is the delay of the interconnect between components. figures 1 and 2 show delay examples from timing wizard report files (.twr).
lattice semiconductor lattice semi conductor design floorplanning 16-3 figure 16-1. floorplanning may be able to help bring these registers closer figure 16-2. floorplanning is not needed here because the routing is efficient floorplan to improve design performance properly applied, design floorplanning not only preserve s, but improves design performance. floorplanning meth- odologies can be used to place modules, entities, or any gr oup of logic to regions in a devices floorplan. because floorplanning assignments can be hierarchical, designers can have more control over the placement and perfor- mance of modules and groups of modules. in addition to hierarchical blocks, like grouping an entire vhdl entity or verilog module, designers can floorplan individual nodes (e.g., instantiate a library element for a function in the critical path and then group the library ele- ment). this technique is useful if the critical path spans multiple design blocks. note: although floorplanning can increase performance, it may also degrade performance if it is not applied cor- rectly within software limitations. floorplan to preserve module performance floorplanning with design constraints maintains design performance by grouping the placement of nodes in a device, i.e., the relative placement of logic within a grouped region remains constant. the isplever software then places the grouped region into the top-level design with th ese constraints. when placing logic in a region, the isp- lever software does not preserve the routing information. this approach provides more flexibility when the soft- ware imports the region into the top-level design and helps fitting. floorplan for design reuse floorplanning facilitates desi gn reuse by its ability to reproduce the perfor mance of a module designed in a differ- ent project. for frequently used modules, designers can create a library of verified designs that can be incorpo- rated into other larger designs. the library only has to contain the vhdl or verilog source code along with grouping attributes and some comments detailing useful informati on to the user, such as performance and size. with a parameterized module, in-code assignments can specify the modules size and grouping assignments. targeting the same device used in the original design likel y achieves the best results, although other devices in the same family will likely work well. when using a different de vice in the same family, the exact placement of the region may not be possible. similar performance, however, may be possible by moving or floating regions. a float- ing region groups the logic together and guides the isplever so ftware toward achieving a placement that meets the performance requirements of the module. a similar approach can also be taken if exact placement of a module is not applicable because of multiple instantiations of a module in a top-level design. logical details: cell type pin type cell name (clock net +/-) source: ff q ibuf/reg_init_start (from clk_ib+) destination: ff data in ibuf/sd/reg_new_state (to clk_ib +) delay: 8.062ns (18.2% logic, 81.8% route), 2 logic levels. logical details: cell type pin type cell name (clock net +/-) source: ff q mem_if_tx_address_8 (from clk_c +) destination: ff data in mem_if_tx_address_17 (to clk_c +) delay: 7.358ns (61.2% logic, 38.8% route), 4 logic levels.
lattice semiconductor lattice semi conductor design floorplanning 16-4 how to floorplan a design design performance e nhancement strategies floorplanning methodologies improve the performance of de signs that do not necessarily consist of individually optimized modules. the ability of spec ifying regions to group nodes together and provide relative placement enhances the usability of the isplever place-and-route software tools. the design strategies for performance enhancement depend on the structure of a particular circuit. strategies include: ?efining regions based on design hierarchy if the hierarchy closely resembles the structure of the circuit. these designs typically consist of tightly integrated modules, where the logic fo r each module is self-con - tained and modules communicate through well-defined interfaces. ?efining regions based on the critical path, if the critical path is long and spans multiple modules. keeping the nodes in the critical path or the modules containing the critical path together may lead to improved per - formance. defining regions based on connections by grouping nodes with high fan-outs and high fan-ins together to reduce delays in connections and wiring congestion in the device. note that designers may need to change existing design hierarchy and structure to make the design more amiable to floorplanning. this is especially applicable if modular hierarchy and structure was not considered at the begin- ning of design conception. with the floorplaning methodologies, the user can choose to optimize modules either individually or after they have been integrated with the top-level design. the user can ex ercise varying amounts of control over the placement by using different types of regi ons. by using bounding boxe s and location anchors select ively, the isplever software can easily determine the best size and location for a region. another approach is to optimize the top-level design without first optimizing the individual modules. this approa ch allows the isplever software to place nodes within regions and move regions across the device. the user assigns modules to regions and then compiles the entire design. with this approach the user can place elements from different modules in a region. design floorplanning methodologies there are several methods available to aid in the floorplanning of a logical design in a lattice semiconductor fpga. this section illustrates these me thods with examples of how to use th e isplever software tools to achieve performance goals. the three main floorplanning tools available include: ?he pgroup physical constraint can be used as an attribute in vhdl and verilog hdl source code or as a physical preference in the .prf design constraint file. this can be used directly by the isplever placer software to bound and locate sections of a design for grouping in the fpga array. ?he ugroup logical constraint can be used as an attribute in vhdl and verilog hdl source code to gather logical sections of a design for grouping in the fpga array. ?he floorplanner graphical user interface (gui) can be used to interactively specify placement parame - ters in either the logical or physical domain for some of a designs modules (e.g. logic gates, registers, arith - metic functions) from one graphical user interface. when to use pgroup vs. ugroup ugrouping differs from pgrouping as follows: ? pgroup logical identifier, in edif, is prepended with text that describes the identifiers hierarchy. a ugroup logical identifier, in edif, is not changed by prepending the hierarchy on the block instance identifier. in other words, pgrouping enforces strict hierarchical control while ugrouping allows for a grouping of blocks in different hierarchies or a grouping of blocks with no hierarchy at all.
lattice semiconductor lattice semi conductor design floorplanning 16-5 also note that the pgroup attribute can be placed on multiple instantiations of modules (e.g. vhdl generate statements) and each instantiation will have its own pgroup. using a ugroup will not work in this case. in figures 3 and 4, the arrows represent control and data paths where there is interaction between different levels of hierarchy. the thick lined arrow re presents the critical path where the design is failin g to make performance. figure 16-3. pgroup same hierarchy example, pgroup controller figure 16-3 illustrates a design hi erarchy where the failing paths are th e connections between counter and state_machine design blocks. the easiest implementation for this example is to pgroup the controller, which is the module in which the counter and state_machine are instantiated within. for example, if the following synplify at tribute is in the verilog hdl file: module controller ()/* synthesis pgroup=?ontrol_group?*/; then the counter and state_machine will be grouped in the fpga inside a boundary box. now assume that the counter is mapped into pfu_0 and pfu_1 and the state_machine is mapped into pfu_2. the resulting preference generated by map in the .prf file will be: pgroup ?op/controller/control_group? comp ?fu_0? comp ?fu_1? comp ?fu_2? notice the top/ hierarchy is prepended to the controller pgroup identifier. figure 16-4. ugroup different hierarchy example, ugroup register_file and state machine figure 16-4 shows an example design hierarchy where the failing paths are the connections between register_file and state_machine modules. the simplest thing to do here is to ugroup the register_file and stat e_machine together. for example, if the following synplify attributes are in the verilog hdl file: top level of hierarchy top controller counter critical path state_machine register_file second level of hierarchy third level of hierarchy top level of hierarchy top controller counter critical path state_machine register_file second level of hierarchy third level of hierarchy
lattice semiconductor lattice semi conductor design floorplanning 16-6 module register_file () /*synthesis ugroup=?ritical_group?*/; and module state_machine () /*synthesis ugroup=?ritical_group?*/; then the register_file and state_ma chine will be grouped in the fpga inside a default boundary box. now assume that the register_file is mapped into pfu_4 and pfu_5 and the state_machine is mapped into pfu_3. the resulting preference generated by map in the .prf file will be: pgroup ?ritical_group? comp ?fu_3? comp ?fu_4? comp ?fu_5? notice the top/ hierarchy is not appended to the pgroup identifier critical_group. also notice that ugroup attributes result in pgroup preferences. there is no ugroup preference. if pgroup attributes instead of ugroup attributes had been used for figure 16-4: module register_file () /*synthesis pgroup=?ritical_group?*/; and module state_machine () /*synthesis pgroup=?ritical_group?*/; then the resulting preference generated by map in the .prf file would be: pgroup ?op/controller/state_machine/critical_group? comp ?fu_3? pgroup ?op/register_file/critical_group? comp ?fu_4? comp ?fu_5? so, with pgroup attributes, the state_machine module would be grouped together in one bounding box and register_file module would be grouped together separately in another bounding box and the critical path shown in figure 16-4 will not be optimized. these examples do not utilize all the possible tools available for floorpla nning. please refer to isplever on-line help pgroup section for many small syntax examples. floorplanner gui usage generally, the pgroups and ugroups are preferable to the floorplanner gui since they are easier to imple- ment. for example, it is easier to type in a pgroup attribute in the hdl code then to load the gui with large netlists and find the desired block and perform add the pgroup via mouse clicks. more importantly, the gui does not allow the retention of floorplanning the way pgrouping and ugrouping does. since the gui does not back annotate the grouping attributes into the hdl, the gui operations have to be redone every time there is a new design iteration. the floorplanner gui can be useful for ?iewing elements in a graphical environment to see a designs logical hierarchy. viewing existing pgroups and ugroups. resizing regions and boundary boxes (bboxes). graphically placing regions, pgroups, and ugroups and then running map, place, route, and trace to see the effects. this is usually an iterative process before finding an optimal solution.
lattice semiconductor lattice semi conductor design floorplanning 16-7 if the floorplanner gui is used, it is strongly reco mmended that after finding the optimal grouping with the gui, grouping attributes (pgroup and/or ugroups) should be inserted into the hdl source code to pre- serve module performance over design revisions. special floorplanning considerations embedded block ram placement block ram placement can be done with simple locate pref erences. it is not always necessary to locate block rams. do not use the pgroups, ugroups, or the floorplanner gui to group block rams. i/o grouping there is a complete se t of physical constraints on pgrouping i/o components. plea se refer to isplever on-line help, defining pio component groups, for keyword explanations and syntax examples. large module grouping it is strongly recommended that larger pgroups/ugroups (with many logical elements) be anchored and bounded by locate and bbox keywords. from the state_machine example, we see that without anchoring the groups, the performance worsened compared to no floorplanning at all. the bbox should be strategically shaped and sized acco rding to the module to be placed inside the bbox. if the bbox shape and size is not specified, th e default bbox size will be a square that is as small as possible. this is not the optimal bbox for typical modules. the designer should shape the design with the datapath in mind and size the bbox to be larger then neede d so that the isplever placer program can have more flexibility in placing logic elements inside the bbox. carry chains and bus grouping carry chains (used by ripple arithmetic functions like adders, counters, and multipliers) and logic modules con- nected by busses can easily be floorplanned inappropriately by a designer that is not aware of the internal routing resources available to optimize these carry chain and bus routes. as we saw from the multiplier example, certain groupings can reduce the performance of a design compared to no floorplanning at all. great care should be used when floorplanning designs that use carry chains or busses so that these routes fall in optimal locations for optimal performance. broken carry chain example a 9-bit adder that is pgrouped with no relative placement on the adder. logic elements such as pfus may give worse performance because the adder carry-chain is broken. slics in groups for lattice semiconductor fpga device families that contain supp lemental logic an d interconnect cells (slics), the slics are automatically removed from pgroups and ug roups by the isplever softwa re if they are not rel- atively placed. this is because slics ar e used by the tools for interconnects that are not foreseeable by designers. if slic placement has to be controlled for a design, the designer will need to instantiate and locate the slics in their preference or hdl files. it is recommended to allow the isplever software to automatically place slics. summary this application note defined floorplanning, discussed when it should be used, and detailed how floorplanning is done with respect to lattice semiconductor fpga designs. examples were used to illustrate and compare the dif- ferent tools available to the designer for floorplanning. important items discussed: ?loorplanning can improve timing for targeted critical paths. ?mproper floorplanning can make timing worse.
lattice semiconductor lattice semi conductor design floorplanning 16-8 ?orrect floorplanning can increase logic element count slightly. ?ompleted floorplanning should be annotated into the hdl. ?loorplanning enhances the reusability of design s by keeping placement directives in the hdl. ?se pgroups for physical grouping in the same hierarchy. ?se ugroups for logical grouping across hierarchies. with lattice semiconductor fpgas, floorplanning is an optional methodology to help designers improve perfor- mance and density of a fully, automatically placed and routed design. floorplanning is particularly useful on struc- tured designs and data path logic. design floorplanning is very powerful and provides a combination of automation and user control for design reuse and modular, hierarchical, and incremental design flows. it advances the design of large systems on fpgas. it pro- vides the designer with capab ilities in the managemen t and optimization of large system s. its multifaceted capabil- ities result in shortened design cycles and faster time to market. technical support assistance hotline: 1-800-lattice (north america) +1-503-268-8001 (outside north america) e-mail: techsupport@latticesemi.com internet: www.latticesemi.com
www.latticesemi.com 17-1 tn1018_02.0 july 2004 technical note tn1018 introduction lattice semiconductors isplever software, together with lattice semiconductors catalog of programmable devices, provides options to help meet design timing and logic utilizatio n requirements. additionally, for those instances where objec tives push the capabilitie s of the device archit ecture, isplever provides the tools for meet- ing the most challenging requirements. for the most aggressive design requir ements, the designer should become fa miliar with a variety of timing con- straints (called preferences) and place and route (par) techniques for providing the optimal par results. this document describes these tips and tech niques. advanced techniques in floorp lanning will not be discussed in this document. instead they are covered in technical note number tn1010, lattice semiconductor design floorplan- ning . isplever place and route software (par) in the isplever design flow, after a des ign has undergone th e necessary translation to bring it into the mapped physical design (.ncd file) format, it is ready for placemen t and routing. this phase is handled by the timing-driven pa r s o f t w a r e p r o g r a m . d e s i g n e r s c a n i n vo k e pa r f r o m t h e isplever project navigator or from the command line. pa r p e r fo r m s t h e fo l l o w i n g : ?akes a mapped physical design (.ncd file) and a preference file (.prf) as input files. ?laces and routes the design, attempting to meet the timing preferences in the input .prf file. creates a file which can then be processed by the isplever design implementation tools. placement the par process places the mapped physical design (.ncd file) in two stages: a constructive placement and an optimizing placement. par writes the physical des ign after each of these stages is complete. during constructive placement, par places comp onents into sites based on factors such as: constraints specified in the input file (for example, certain components must be in certain locations). ?he length of connections. ?he available routing resources. ?ost tables which assign random weighted values to each of the relevant factors. there are 100 possible cost tables. constructive placement continues until all components are placed. optimizing placement is a fine-tuning of the results of the constructive placement. routing routing is also done in two stages: iterative routing an d delay reduction routing (als o called cleanup). par writes the physical design (.ncd file) only after iterations where the routing score has improved. during iterative routing, the router performs an iterative procedure to converge on a solution that routes the design to completion or minimizes the number of unrouted nets. during cleanup routing (also called delay reduction), the router takes the results of iterative routing and reroutes some connections to minimize the signal delays within the device. there are two types of cleanup routing that can be performed: lattice semiconductor fpga successful place and route
lattice semiconductor fpga lattice semiconductor successf ul place and route 17-2 a faster cost-based cleanup routing, which makes routing decisions by assigning weighted values to the factors (for example, the type of routing resources used) affecting delay times between sources and loads. ? more cpu-intensive, delay-based cleanup routing, which makes routing decisions based on computed delay times between sources and loads on the routed nets. note that if par finds timing preferences in the preference file, timing-driven placement and routing is automatically invoked. timing driven par process the isplever software offers timing driven placement and ro uting through an integrated static timing analysis util- ity (i.e., it does not depend on input stimulus to the circ uit). this means that placement and routing is executed according to timing constraints (preferences) that the designer specifies up front in the design process. par attempts to meet timing constraints in the preference file without exceeding the specified timing constraints. to u s e t i m i n g - d r i ve n pa r , t h e d e s i g n e r s i m p l y w r i t e s t i m i ng preferences into a preference (.prf) file, which serves as input to the integrated static timing analysis utility. see the process flows section of the isplever on-line help system for more information about the par software and isplever design flow. general strategy guidelines preferences should be inserted at the front end of a design flow. this prevents designers from having to change par physical preferences as net names may change with every synthesis run. the tips below are general recommendations. ?nalyze trace results in the inte grated static timing analysis utilit y report (.twr) file carefully. look at mapped frequency before you par a design to check for errors and warnings in the preference file and to check for logic depth. logic depth is reported in .twr files as logic levels (components). ?etermine if design changes are required. a typical ex ample design change is pipelining, or registering, the datapath. this technique may be the only way to achieve high internal frequencies if the designs logic levels are too deep. ?t is recommended to perform place and route early in the design phase with a preliminary preference file to gather information about the design. ?une up your preference file to include all i/o and internal timing paths as appropriate. the translating board requirements into fpga preferences section of this document goes over an appropriate preference file example. establish the pin-out in the preference file. locating i/o can also be done in the hdl, as well as in synthesis constraint files. push par when necessary by running multiple routing iterations and multiple placement iterations. revise the preference file as ap propriate, especially utilizing mult icycle opportunities when possible. ?loorplan the design if necessary (see technical note number tn1010, lattice semiconductor design floorplanning ). for lattice semiconductor orca series devices, use clock boosting as a last resort, remembering to run trace hold timing checks on the clock boosted design. refer to the clock boosting section of this document for more information on clock boosting. typical design preferences the full preference language includes many different design constraints from very global preferences to very spe- cific preferences. to a new user this is a very large list to digest and utilize effectively. listed here are the recom- mended preferences that should be applied to all designs. refer to the constraints & preferences section of the isplever on-line help system for more information on preferences.
lattice semiconductor fpga lattice semiconductor successf ul place and route 17-3 block asynchronous paths: prevents the timing tools from analyzing any paths from input pads to regis - ters or from input pads to output pads. block ram reads during write: if using pfu based ram, this will prev ent timing analysis on a ram read during a write on the same address in a single clock period. frequency/period : each clock net in the design should contain a frequency or period preference. input setup: each synchronous input should have an input_setup preference. clock-to-out: each synchronous output should have a clock_to_out preference. block : all asynchronous reset nets in the design should be blocked. multicycle: the multicycle preference allows the designer to relax a frequency/period constraint on selected paths. proper preferences providing proper preferences is key to a successful design. if the constraints of a preference file are tighter than the system requirements, the design will end up being over-constrained. as a c onsequence, par run times will be con- siderably longer. in addition, over-c onstraining non-critical paths will force par to waste unnecessary processing power trying to meet these constraints, hence creating po ssible conflicts with real critical paths that ought to be optimized first. on the other hand, if a preference file is under-constrained compared to real system requirements, real timing issues not previously seen during dynamic timing simula tions and static timing analysis could be observed on a test board, or during production. common causes of over-constrained timing preferences include: ?ulticycle paths not specified. ?ultiple paths to/from i/os with different specifications. ?ttempt to fool the par tool with tighter than necessary specifications. note that over-constrained designs will also need a significantly larger amount of processi ng power and computing resources. as a result, it might be necessary to increase some of the allo cated system resource s (as in increasing your pc virtual memory paging size). common causes of under-constrained timing preferences include: ?/o specifications not defined. asynchronous logic without maxdelay preferences. ?nternally generated or unintentional clocks not specified in preference file. ?locking critical paths. in general, to make sure that no critical paths were left out due to under-constraining, it is recommended to check for path coverage at the end of a trace report file (.twr). an example of such an output is shown in figure 17-1. figure 17-1. trace report (.twr) timing summary example timing summary: --------------- timing errors: 4096 score: 25326584 constraints cover 36575 paths, 6 nets, and 8635 connections (99.0% coverage)
lattice semiconductor fpga lattice semiconductor successf ul place and route 17-4 this particular example shows a 99.0% coverage. the way to find unconstrained paths is to run trace with the check unconstrained paths checkbox se lected. this will give a list of all of the signals that ar e not covered under timing analysis. in some designs, many of these signals are a common ground net that indeed does not need to be constrained. designers should understand this point and use trace (the isplever stat ic timing analysis tool) to check unconstrained paths to make sure they are not missing any design paths that are timing critical. also, note the timing score shown in figure 17-1. the timing score shows the total amount of error (in picoseconds) for all timing preferences constraining the design. pa r attempts to minimize the timing score, par does not attempt to maximize frequency. the above discussion can be summarized by the following single equality: quality of preference file = quality of par results translating board requirement s into fpga preferences understanding the system board level timing and design constraints is the primary requirement for producing a complete preference file. as a result, the major requirements such as clock frequency, i/o timing and loads can be translated into the appropriate preference statements in a constraint file. the following exercise will provide an example on how to extract preferences fr om system conditions. figure 17-2 shows an example system involving the interface between a port controller and a lattice semiconduc- tor fpga. figure 17-2. interface timing example in the system above, several parameters have already been provided: ?ystem clock frequency: period (p): 30 ns. ?ort controller maximum output propagation delay (pdmaxp): 18ns. ?ort controller minimum output propagation delay (pdminp): 3 ns. ?ort controller input setup specification (tsp): 5 ns. ?ort controller input hold specification (thp): 3 ns. max board propagation delay (pdmaxb): 6 ns. ?in board propagation delay (pdminb): 1 ns. ?ort controller to fpga device clock skew and vice versa (tskew): 1 ns. port controller lattice fpga pcb traces 3 ns to 18 ns clk to out, 5 ns setup, 3 ns hold board propagation delay of 1 ns to 2 ns clk 5 pf parasitic board capacitance 9 pf input capacitance, 60 pf ac load 9 pf input capacitance chip to chip clock skew of 1 ns
lattice semiconductor fpga lattice semiconductor successf ul place and route 17-5 ?oard trace ac loading (cbac): 60 pf. ?oard trace parasitic capacitance (cb): 5 pf. port controller input capacitance (cp) :9 pf. ?pga device input capacitance (co): 9 pf. the above information was specified under the following environmental conditions: ?aximum ambient temperature (ta): 70 (c. estimated power consumption (q): 2 w. 680 pbgam package thermal resistance ( ) j) at 0 feet per minute (fpm) airflow: 13.4 c/w. the goal of this exercise is to compute the following device i/o constraints: 1. input setup specification. 2. input hold specification. 3. maximum output propagation delay. 4. minimum output propagation delay. 5. output loading. 6. temperature. the only parameter which can be obtained from the above is the device junction temperature: tj = ) j * q - ta = 13.4 * 2 + 70 = 96.8 ? the required constraints can be computed as follows: 1. input setup specification = p - pdmaxp - pdmaxb - tskew = 30 - 18 - 2 - 1 = 9 ns 2. input hold specification = pdminp + pdminb - tskew = 3 + 1 - 1 = 3 ns 3. output maximum propagation delay requirement = p - tsp - pdmaxb - tskew = 30 - 5 - 6 - 1 = 18 ns 4. output minimum propagation delay requirement = thp - pdminb + tskew = 3 - 1 + 1 = 3 ns 5. output loading = cbac + cb + cp = 60 + 5 + 9 = 74 pf the preference file to use for this example is shown in figure 17-3. for more preference language syntax and examples, refer to the constrai nts & preferences section of th e isplever on-line help system.
lattice semiconductor fpga lattice semiconductor successf ul place and route 17-6 figure 17-3. interface timing preference file example analyzing timing reports this section describes two examples of actual trace reports (.twr report file from trace). the purpose is to analyze both examples and understand each section of the reports given the design paths constrained. example 1. multicycle betw een two different clocks in this first example, clka and clkb were assi gned 104 mhz and 66 mhz frequencies respectively. in addition, a multicycle constraint was specified as per the preference file: frequency net "clka" 104 mhz ; frequency net "clkb" 66 mhz ; multicycle "m2" start clknet "clka" end clknet "clkb" 2.000000 x ; see figure 17-4 for the block diagram and waveform for this example. the resulting trace report is shown in figure 17-5. figure 17-4. multicycle clock domains block diagram and waveform period port "clk" 30 ns ; input_setup "port_controller*" 9 ns hold 3 ns clknet "clk"; clock_to_out "port_controller*" 18 ns min 3 ns clknet "clk"; output port "port_controller*" load 74 pf ; temperature 96.8 c ; clk b clka 7.7ns clk a 9.60 ns clkb 7.9 ns 15.15 ns 30.30 ns 7.70 ns 7.90 ns combinational logic
lattice semiconductor fpga lattice semiconductor successf ul place and route 17-7 figure 17-5. trace report for multicycle clock domains example in figure 17-5, notice how the path is described in terms of logical details. this section shows both the source and destination registers using their unmapped names from the edif (elec- tronic data interchange format) file. this is a feature that allows the user to recognize the type of logic being ana- lyzed. based on the declared frequencies for both clocks, we already know the following: ?lka period = 9.6 ns. ?lkb period = 15.15 ns. ================================================================================ preference: multicycle "m2" start clknet "clka" end clknet "clkb" 2.000000 x ; 40 items scored, 0 timing errors detected. -------------------------------------------------------------------------------- warning - trce: clock skew between net 'clka' and net 'clkb' not computed: nets may not be related -------------------------------------------------------------------------------- passed: the following path meets requirements by 27.945ns logical details: cell type pin type cell name (clock net +/-) source: ff q v_fifo_bank_1_stfifo0_wr_count_2 (from clka +) destination: ff data in v_fifo_bank_1_stfifo0_wr_count_r_2 (to clkb +) delay: 2.456ns (37.3% logic, 62.7% route), 1 logic levels. constraint details: 2.456ns physical path delay pfu_155 to pfu_156 meets 30.302ns delay constraint less -0.099ns din_set requirement (totaling 30.401ns) by 27.945ns physical path details: name fanout delay (ns) site resource reg_del --- 0.917 r22c16.clk0 to r22c16.q2 pfu_155 (from clka) route 1 1.539 r22c16.q2 to r23c17.din2 v_fifo_bank_1_stfifo0_wr_countz0z_2 (to clkb) -------- 2.456 (37.3% logic, 62.7% route), 1 logic levels. clock skew details: source clock path: name fanout delay (ns) site resource in_del --- 1.192 am17.pad to am17.indd ip_clka route 1 2.989 am17.indd to llppll.clkin ip_clka_c mclk_del --- 0.424 llppll.clkin to llppll.mclk v_io_ppl3_tx4_1_mtppll_rsp_rsppll_0_0 route 177 3.094 llppll.mclk to r22c16.clk0 clka -------- 7.699 (21.0% logic, 79.0% route), 2 logic levels. destination clock path: name fanout delay (ns) site resource in_del --- 1.192 c17.pad to c17.indd ip_clkb route 1 3.091 c17.indd to ulppll.clkin ip_clkb_c mclk_del --- 0.424 ulppll.clkin to ulppll.mclk v_io_ppl3_tx4_1_mtppll_mac_macpll_0_0 route 263 3.182 ulppll.mclk to r23c17.clk0 clkb -------- 7.889 (20.5% logic, 79.5% route), 2 logic levels.
lattice semiconductor fpga lattice semiconductor successf ul place and route 17-8 ?o relative phase information exists between both clocks. as a result, trace does not factor in the skews on either clock. as a consequence, we know that, ignoring everything else (clock skews, registers library setups, etc.), a single cycle positive edge to positive edge setup available from clka to clkb is: 15.15ns (refer to waveforms in figure 17-4). hence, with 2x multicycle, the resulting setup would be twice that number, or: ts = 30.3 ns (shows up as delay constraint under constraint details section of trace report) having computed this, the available setu p margin is known to be as follows: m = (ts - td) - ds where: ?d = path delay from clock pin of source register to d pin of destination=2.456 ns. shown in the physical path details section of trace report. ds = destination cell library setup requirement= -0.099 ns. this matches din_set under constraint details section of the .twr trace report. there is no phase relationship between clka and clkb as indicated by the warnings in figure 17-5. hence, the following skews were correctly ignored: ?sb = delay or skew on destination clock clkb = 7.889 ns. shown in the clock skews detail section of tr a c e r e p o r t . tsa = delay or skew on source clock clka = 7.699 ns. shown in the clock skews detail section of trace report. hence: ? = (30.3 - 2.46) - (-0.0 99) = 27.9 ns. this matche s the number in the ?assed? section at the top of the tr a c e r e p o r t . example 2. clock_to _out with pll feedback in this example, ip_macclk_c is assigned to 66 mhz and the clock to out propagation delays are constrained in the preference file: frequency net "ip_macclk_c" 66 mhz; clock_to_out allports 7.000000 ns clkport "ip_macclk" ; see figure 17-6 for the block diagram for this example. the resulting trace report is shown in figure 17-7.
lattice semiconductor fpga lattice semiconductor successf ul place and route 17-9 figure 17-6. clock_to_out with pll figure 17-7. trace report fo r clock_to_out with pll pio ip_macclk rxseln fb clki mclk ulppl cpdel = 8.25 dpdel = 3.17 ns fbdel1 = 3.38 ip_macclk_c fbdel0 = 0.424 ns logic ================================================================================ preference: clock_to_out allports 7.000000 ns clkport "ip_macclk" ; 2 items scored, 0 timing errors detected. -------------------------------------------------------------------------------- passed: the following path meets requirements by 0.681ns logical details: cell type pin type cell name (clock net +/-) source: io-ff out q ppl3_rx5_1_rxselnio (from macclk +) destination: port pad rxseln data path delay: 3.164ns (100.0% logic, 0.0% route), 1 logic levels. clock path delay: 8.249ns (19.6% logic, 80.4% route), 2 logic levels. constraint details: 8.249ns delay ip_macclk to rxseln less 5.094ns feedback compensation 3.164ns delay rxseln to rxseln (totaling 6.319ns) meets 7.000ns offset ip_macclk to rxseln by 0.681ns physical path details: clock path ip_macclk to rxseln: name fanout delay (ns) site resource in_del --- 1.192 c17.pad to c17.indd ip_macclk route 1 3.235 c17.indd to ulppll.clkin ip_macclk_c mclk_del --- 0.424 ulppll.clkin to ulppll.mclk v_io_ppl3_tx4_1/mtppll_mac/macpll_0_0 route 141 3.398 ulppll.mclk to f32.sc macclk -------- 8.249 (19.6% logic, 80.4% route), 2 logic levels. data path rxseln to rxseln: name fanout delay (ns) site resource outregf_de --- 3.164 f32.sc to f32.pad rxseln (from macclk) -------- (100.0% logic, 0.0% route), 1 logic levels. feedback path: name fanout delay (ns) site resource mclk_del --- 0.424 ulppll.clkin to ulppll.mclk v_io_ppl3_tx4_1/mtppll_mac/macpll_0_0 route 141 3.380 ulppll.mclk to ulppll.fb macclk -------- 3.804 (11.1% logic, 88.9% route), 1 logic levels. report: 6.319ns is the minimum offset for this preference.
lattice semiconductor fpga lattice semiconductor successf ul place and route 17-10 the different path measurements were obtained from the trace report shown in figure 17-7 as follows: ?pdel = data path delay = 3.16 ns. shown under physi cal path details-> data pa th in the timing report. fbdel0 = feedback cell delay across pll = 0.42 ns, which is the first entry value under feedback path. fbdel1 = feedback routing delay from pll output to pll fb pin = 3.38 ns, which is the second entry value under feedback path. the full feedback delay includes both fbdel0 and fbdel1 (0.42 + 3.38 = 3.80) under feedback path, in addition to any internal pll delay added after the fb pin. such a delay is a programmable attribute defined as fb_pdel. this programmable value can be set to any of one of 4 values (del0, del1, del2 or del3; del0 being 0 delay) in either the hdl file input to synthesis, or in the graphical editor for programmable integrated circuits (epic) soft- ware tool included wit h the isplever software. therefore, the total feedback delay would be: fbdel = fbdel0 + fbdel1 + fb_pdel = 3.80 + fb_pdel under ?onstraint details?of the report file, the feedback compensation (fbdel) is shown to be 5.09 ns. since this value is different from 3.804, we conclude that a non-zero value of fb_pdel was applied (5.10 - 3.80 = 1.29 ns). this value corresponds to fb_pdel = del2 in an or4e4-2 device. now, let's verify the available margin on this clock_to_out preference: m= ckout - (cpdel + dpdel - fbdel) = 7.000 - (8.249 + 3.164 - 5.094) = 0.681 ns this value matches the one at the top of the report file (passed section). it also matches the final value under ?onstraints details? isplever controlled place and route extensive benchmark experiments have been performed in order to determine the most optimum per device default settings for all par options. at times, improved timing results can be obtained on a design by design basis by trying different variations of the par options. this se ction describes the techniques that can be used within the isplever graphical user interface (gui) to improve timing results from trace on placed and routed designs. running multiple routing passes improved timing results can be obtained by increasing the number of routing passes during the routing phase of pa r . the par options window in figure 17-8 can be launched by the following steps: 1. in the project navigator source window, select the target fpga device . 2. in the processes window, right-click the place & route design process and select properties to open the dialog box. in the example screen shot shown in fi gure 17-8, the router will route the design for five routing iterations, or until all the timing preferences are met, whic hever comes first. for example, par will stop after the seco nd routing itera- tion if it hits a timing score of zero on the second routing iteration. the highest selection in placement effort level will result in longer par run times but may give better design timing results. a lower placement effort will result in shorter par run times but will likely give less than optimal design tim- ing results.
lattice semiconductor fpga lattice semiconductor successf ul place and route 17-11 figure 17-8. par options window figure 17-9. example par report (.par) file, routing section the place and route (.par) report file contains execution information about the par command run. the report also shows the steps taken as the program converges on a placement and routing solution. in the routing convergence example text in figure 17-9, the number in parenthesis is the timing score after each iteration. in this example, tim- ing was met after three routing iterations, as can be seen from the (0) timing score. using multiple placement iterations (cost tables) using multiple placement iterations can be achieved by selecting the advanced options in figure 17-8. as shown in the advanced options of figure 17-8, the number of iterations is set to 10 and the placement start point is set to iteration 1 (cost table 1). only the best n cd file is to be saved as per the following line. once par runs, the tool will loop back th rough the place and route flow until the num ber of iterations has reached 10. in this 0 connections routed; 26590 unrouted. starting router resource preassignment completed router resource preassignment. real time: 11 mins 31 secs starting iterative routing. end of iteration 1 26590 successful; 0 unrouted; (151840) real time: 14 mins 29 secs dumping design to file d:\ip\design.ncd. end of iteration 2 26590 successful; 0 unrouted; (577) real time: 16 mins 23 secs dumping design to file d:\ip\design.ncd. end of iteration 3 26590 successful; 0 unrouted; (0) real time: 17 mins 39 secs dumping design to file
lattice semiconductor fpga lattice semiconductor successf ul place and route 17-12 example, the ncd file with the best timing score would be saved. the tool keeps track of the timing and routing per- formance for every iteration in a file called the multiple par report (.par). such a file is shown in figure 17-10. figure 17-10. multiple par report (.par) figure 17-10 indicates that: the 5_ under the level/cost column means that the placement effort level was set to 5. the placement effort level can range from 1 (lowest) to 5 (highest). ?0 different iterations ran (10 cost tables). timing scores are expressed in total picoseconds (ps) by which the design is missing constraints on all preferences. ?teration number 4 (cost table 4) achieved a 0 timing score and hence was the design saved. more than one .ncd file can be saved. this is user-controlled via the placement save best runs value box shown in figure 17-8 . ?ach iteration routed completely. note that, in figure 17-8, if ?laceme nt iterations (0=run until solved)? is se t to 0, the tool will run indefinitely through multiple iterations until a 0 timing score is reached. in a design that is known to have large timing violations, a 0 timing score will never be reached. as a consequence, the user must intervene and stop the flow at a given point in time. in general, multiple placement iterations can help plac ement but can also use many cpu cycles. multiple place- ment iterations should be used carefully due to system limitations and the uncertainty of results. it is better to fix the root cause of timing problems in the design stage. clock boosting clock boosting, supported in lattice semiconductors orca series device family, is the deliberate introduction of clock skew on a target flop to increase the setup margin. every programmable flip-flop in the device has program- mable delay elements before clock inputs for this purpos e. the automated clock boosti ng tool will attempt to meet setup constraints by introducing delays to as many target registers as needed to meet timing, in effect, borrow reg- ister hold margins to meet register set-up timing. th e following bullets summarize how clock boosting is accom- plished in lattice semiconducto r orca series device family. a 4-tap delay cell structure in front of the clock port of every flip-flop in the device (includes i/o flip-flops) ?bility to borrow clock cycle time from one easily-met path and give this time to a difficult-to-meet path level/ number timing run ncd cost [ncd] unrouted score time status ---------- -------- ------- ----- -------- 5_4 * 0 0 01:58 complete 5_6 0 25 02:01 complete 5_2 0 102 01:45 complete 5_7 0 158 02:15 complete 5_3 0 186 01:54 complete 5_10 0 318 02:39 complete 5_1 0 470 01:51 complete 5_8 0 562 02:25 complete 5_5 0 732 02:00 complete 5_9 0 844 02:27 complete * : design saved.
lattice semiconductor fpga lattice semiconductor successf ul place and route 17-13 clock boosting is typically most useful in designs that ar e only missing timing on a few paths for one or two prefer- ences. if the design is missing timing by over a few n anoseconds on any given path, cl ock boosting will not be able to schedule skew in a way that will eliminate enough timing to make the critical preference. clock boosting run times can be shortened by using a preference file with only the failing preferences in it. figure 17-11. clock boosting example the example illustrated in figure 17-11 shows two register-to-register transfers that both need to meet the 10 ns period constraint. by using delay cell de l2 to delay the clock inpu t on flip-flop ff _2, the first register transfer will make its period constraint with a new minimum period of ~9.7 ns and the se cond register tran sfer will make its period constraint by ~8.3 ns. the d1, d2, and d3 delays shown in figure 17-11 are variable depending on the speed grade and lattice semi- conductor fpga device family. for complete timing information, reference the software generated timing data sheet, included with isplever, for the desired lattice semicondu ctor fpga device family. to perform clock boosting in the project navigator 1. in the project navigator sources window, select the target device . 2. in the processes window, right-click the clock boosting under place & route design process, and then select properties to open the properties dialog box. 3. select the clock boosting output filename property from the property list and type the name of the out - put file name in the edit region (.ncd). 4. click close to close the dialog box. as shown in figure 17-12, the original .ncd and .prf files as well as the output .ncd file are typed into the corre- sponding entries. checking maximize frequency will push the tool to improve the fr equency beyond the input preference requirement. this is generally only useful for bench marking. del1 ~= 0.7 ns del2 ~= 1.3 ns del3 ~= 2.0 ns del 1 del 2 del 3 ff_1 clock target performance: 10 ns period (100 mhz) ff_2 ff_3 7 ns 11 ns combinational logic
lattice semiconductor fpga lattice semiconductor successf ul place and route 17-14 figure 17-12. clock boosting window other important considerations on the practicality of using clock boosting: some circuits show big improvement, others have no gain. clock boosting results are very design-depen - dent. clock boosting uses minimum delay values which have not yet been validated at the system level. ?utomatic clock boosting identifies skew and hold time issues. however, after clock boosting is performed, designers are strongly recommended to run trace twice, once with regular, maximum delay analysis, and again with minimum delays. the designer should then read over both resultant .twr timing reports to make sure there are no timing errors. the minimum delay analysis is done by checking the check hold times checkbox in the trace options gui window. guided map and par to d e c r e a s e pa r r u n t i m e s a f t e r m i n o r c h a n g e s t o a l o g i cal design, guided mapping uses a previously generated .ncd file to guide the mapping of the new logical design. guided mapping can be performed from the guide file- name property in the project navigator map design process, or specified using the command line -g option with the file name of the guide file. in general, guided map should only be used in conjunction with guided par. to perform guided mapping in the project navigator 1. in the project navigator sources window, select the target device . 2. in the processes window, right-click the map design process, and then select properties to open the properties dialog box. 3. select the guide filename property from the property list and type the name of the guide file name in the edit region (.ncd). 4. click close to close the dialog box. the map operation will use the guide file to generate the new design file. to perform guided par in the project navigator 1. in the project navigator sources window, select the target device . 2. in the processes window, right-click the place & route design process and select properties to open the dialog box. 3. under advanced options, select the guide filename property and type the name of the file in the text field.
lattice semiconductor fpga lattice semiconductor successf ul place and route 17-15 4. click close to close the dialog box. 5. double-click the place & route design process. the isplever software runs the process using the specified guide file. notes on guided mapping all guidance criteria is based on signal name matching . topology of combinatorial logic is considered when soft- wire luts (swls) exist in the guided file. register elements are mapped in two passes. in the fi rst pass, register control signals are matched by name exactly. in the second pass, the control signals names are not matched. this methodology provides a greater chance of matching for registers since control signal name s have a tendency to change from successive synthesis runs. other matching considerations are as follows: ?or combinatorial logic, new swls are matche d from swls extracted from the guide design. all unmatched logic are mapped through the regular mapping process. ?he performance of the guided mapped design can be no better than the original. a guide report, .gpr, gives details of the success guided map had in matching with the guide file. notes on guided par to d e c r e a s e pa r r u n t i m e s a f t e r m i n o r c h a n g e s t o t h e p hy s ical design file (.ncd), gu ided par uses a previously placed and/or routed .ncd file to guide the placement and routing of the new .ncd file. guided par can be per- formed from the project navigator or specified using the command line -g option with the file name of the guide file. for par to use a guide file for design, par first tries to find a guiding object (i.e., nets, components, and/or macros) in the guide file that corresponds to an object in the new .ncd file. a guiding object is an object in the guide file of the same name, type, and connectivity as an object in the new .ncd file. a guided object is an object in the new .ncd file that has a corresponding gu iding object in the guide file. after par compares the objects in each file, it places and routes each object of the new .ncd file based on the placement/routing of its guiding object. if par fails to find a guiding object for a component, for example, par will try to find one based on the connectivity. par appends the names of all objects which do not have a guiding object in the guide file to .gpr (guided par report) file. the matching factor specifies the percentage of the same connec- tivity that guiding and guided objects must have. it can only be specified using the -mf option in the command line. the matching factor option applies to nets and components only. when matching factor is 100 (the default), a guid- ing object must have exactly the same connectivity as the object it is guiding. when a matching factor is specified, the value specified is taken as the minimum percentage of the same connectivity that a guided object and its guid- ing object have. note that the matching factor is always 100 when the guided par is performed from the project navigator. after all guided objects are placed and routed, par locks down the locations of all guided components and macros and then proceeds with its normal operation. guided par supports the following preferences: use spine, use primary, use secondary, use longline, use halfline, locate comp, locate macro, and hard- placed pgroups. conclusion in general, different designs respond better to different strategies. the processes outlined in this application note may not be optimal for all cases. for a design's first place and route, run par at the low placer effort level and with a low number of routing iterations. there is no point in running 100 cost tables if the design's logic depth is too high. the techniques discussed within this document, like interpreting static timing reports and using proper preferences, will guide the user to better par results.
lattice semiconductor fpga lattice semiconductor successf ul place and route 17-16 technical support assistance hotline: 1-800-lattice (north america) +1-503-268-8001 (outside north america) e-mail: techsupport@latticesemi.com internet: www.latticesemi.com
www.latticesemi.com 18-1 tn1071_01.0 june 2004 technical note tn1071 introduction this document describes how to meet board timing requirements for ddr signals. the lattice ddr sdram con- troller ip core, non-pipelined version (ddr-np) is used as an example. figure 18-1 describes the timing diagram for the ddr signals. a total of five clocks are used in the ddr board design using the lattice ddr ip core. the following is the clock description: clk :input clock for pll (max. frequency of 133mhz for ddr np) ddr_clk : output clock going to ddr (max. frequency of 133mhz for ddr np) ddr_clk_n : negated version of ddr_clk pll_mclk (clkx) : same as ddr_clk , used inside the fpga only. pll_nclk (clk2x) :a 266mhz clock for ddr np, used inside the fpga only. figure 18-1. ddr signal timing diagram pll clkin clkfb ddr_clk ddr_clk_n clk fpga clkx tree fpga clk2x tree clkx clk2x ddr memory enb q d dqs_out q d ddr_dq d q ddr_dq_in (read flops) ddr_dq_out (write flops) t fpga_clk t cctrl t ddr_clk t cdqs t bdctrl t cdq pll_mclk pll_nclk q d ddr_ad & command signals t bdc t bdds t bdd t pd q d board timing guidelines for the ddr sdram controller ip core
board timing guidelines lattice semiconductor for the ddr sdram controller ip core 18-2 as shown in figure 18-1, input to pll is clk (133mhz for ddr np). the pll generates pll_mclk (133mhz) and pll_nclk (266mhz). the clocks ddr_clk and ddr_clk_n go to ddr memory and are delayed by i/o pad delay with respect to pll_mclk . the clocks pll_mclk and pll_nclk are internal to the fpga. command and address signals are clocked by a negative edge of pll_mclk . the signal dqs_out acts as a clock for ddr write and is generated by negative edge of pll_nclk . the signal ddr_dq_out is the ddr write data bus and gener- ated by positive edge of pll_nclk . the flops ddr_dq_* latch the read data and are clocked by positive edge of pll_nclk . read operation figure 18-2 shows the timing of the ddr read operation. table 18-1 describes the timing arcs of the read opera- tion. figure 18-2. read timing diagram pll_mclk (inside fpga) dq at ddr (min case) dq at ddr (max case ) dq at fpga flops (min case) dq at fpga flops (max case) ddr_clk t ac (max) t ac (max ) t bdd + t pd t bdd + t pd t bdd + t pd t bdd + t pd t skew t skew t ac (min )t ac (min ) at ddr interface inside fpga
board timing guidelines lattice semiconductor for the ddr sdram controller ip core 18-3 table 18-1. read operation timing arcs set-up time calculation for the data inpu t (max. case) the ddr controller ip core uses the positive edge of pll_nclk to latch in the data. ta bl e 1 8 - 1 t i m i n g a r c s a r e u s e d t o c a l c u l a t e t h e fo l l o w i n g : max. delay of clock to ddr_dq_in flops = t fpga_clk (max) + (t ck * 1/2) - t skew - t fds max. delay of ddr read data to ddr_dq_in flops = t ddr_clk (max) + t bdc + t ac (max) + t bdd + t pd to m e e t s e t - u p t i m e a t ddr_dq_in flops, clock delay - data delay > 0 therefore: t fpga_clk (max) + (t ck * 1/2) - t skew - t fds - t ddr_clk (max) - t bdc - t ac (max) - t bdd - t pd > 0 isolating the board delays, we get: (t bdd + t bdc ) < t fpga_clk (max) + (t ck * 1/2) - t skew - t fds - t ddr_clk (max) - t ac (max) - t pd (t bdd + t bdc ) < 3.75 - 0.3 - 3.195 - 2.47 + 2.935 - 0.75 - 0.0 (t bdd + t bdc ) < -0.03 ns hold time calculation for the data input (min. case) as shown in figure 18-2, the min data is available at ddr output pins after t ac (min) time from the rising edge of ddr_clk . since t ac (min) is generally a negative number, data ap pears before the rising edge. this data will incur board delay (t bdd ) and propagation delay from fpga input pad to the flip-flop input pin (t pd ). min. delay of ddr read data = t ddr_clk (min) + t bdc + t ac (min) + t bdd + t pd symbol description example: ddr-np on orca 4 t ck clock period of ddr_clk 7.5ns t ddr_clk (max) delay from the clk input of the fpga to the ddr_clk pad including feedback compensation (clock path delay - feedback path). 2.47 1 t ddr_clk (min) delay from the clk input of the fpga to the ddr_clk pad including feedback compensation (clock path delay - feedback path). 1.138 1 t bdc board delay of ddr_clk from fpga to ddr sdram. t ac(max) time from the rising edge of ddr_clk after which the data is available at ddr  output pins (max.). 0.75ns t ac(min) time from the rising edge of ddr_clk after which the data is available at ddr  output pins (min.). -0.75ns t bdd board delay from ddr sdram data pad to the fpga ddr_dq pad. t pd propagation delay from fpga input pad to the ddr_dq_in flip-flop input pin (data path delay). 0.0ns 1 t fds set-up time required by the ddr_dq_in flip-flop ( inreg_set ). 3.195ns 1 t fdh hold time required by the ddr_dq_in flip-flop ( inreg_hld ). -1.609ns 1 t skew skew of the pll. 0.3ns t fpga_clk (max) delay from the clk input of the fpga to the ddr_dq_in flip-flop clock input includ- ing feedback compensation (clock out path delay - feedback path). 2.935ns 1 t fpga_clk (min) delay from the clk input of the fpga to the ddr_dq_in flip-flop clock input includ- ing feedback compensation (clock out path delay - feedback path). 1.239ns 1 1. t fpga_clk, t ddr_clk, t pd and t fds can be easily obtained from the pnr time reports.
board timing guidelines lattice semiconductor for the ddr sdram controller ip core 18-4 min. delay of clock to ddr_dq_in flops = t fpga_clk (min) + t skew + t fdh to m e e t h o l d t i m e a t ddr_dq_in flops, data delay - clock delay > 0 therefore: t ddr_clk (min) + t bdc + t ac (min) + t bdd + t pd - t fpga_clk (min) - t skew - t fdh > 0 isolating the board delays, we get: (t bdd + t bdc ) > t fpga_clk (min) + t skew + t fdh - t ddr_clk (min) - t ac (min) - t pd (t bdd + t bdc ) > (1.239) ns + 0.3 + (-1.609ns) - (1.138) - (-0.75) - 0 (t bdd + t bdc ) > -0.458 ns conclusion: to meet read set-up and hold timing, board delay for ddr_dq , ddr_clk and ddr_clk_n should be: -0.458ns < (t bdd + t bdc ) < -0.03ns write operation for a proper write operation, data ( ddr_dq ) should meet set-up (t ds ) and hold (t dh ) time requirements of ddr sdram with respect to ddr_dqs signal. the ddr_dqs signal is generated with respect to negative edge of pll_nclk and data ddr_dq out is generated with respect to positive edge of pll_nclk as shown in figure 18-3. as a result, 1/2 clk2x (3.75ns/2) is provided as set-up and hold for ddr_dq_out with respect to dqs_out . for maximum set-up and hold margin, the ddr_dqs and ddr_dq traces on the board should be matched. table 18-2. write operation timing arcs figure 18-3. write timing diagram write set-up clock delay = t cdqs + 1/2 clk2x - t ds + t bdds data delay = t cdq + t bdd symbol description orca 4 t ds set-up time required by the dq with respect to dqs for ddr sdram. 0.75ns t dh hold time required by the dq with respect to dqs for ddr sdram. 0.75 ns t cdq clock-to-out timing for ddr_dq with respect to pll_nclk . t cdqs clock-to-out timing for ddr_dqs with respect to pll_nclk . t bdds board delay of ddr_dqs from fpga to ddr sdram pins. pll_nclk (clk2x) dqs_out ddr_dq_out t cdqs t cdq
board timing guidelines lattice semiconductor for the ddr sdram controller ip core 18-5 clock delay - data delay > 0 therefore: t cdqs + 1/2 clk2x - t ds + t bdds - t cdq - t bdd > 0 assumptions for write set-up and hold equations: 1. t bdds and t bdd are equal (board delays are same both for dqs_out and ddr_dq_out ). 2. t cdq and t cdqs are equal (both are output delays from i/o flop). therefore: 1/2 clk2x - t ds > 0 3.75/2 - 0.75 > 0 1.125 > 0 write hold data delay = t cdq + t bdd clock delay = t cdqs + 1/2 clk2x + t dh + t bdds data delay - clock delay > 0 therefore: t cdqs + 1/2 clk2x - t dh + t bdds - t cdq - t bdd > 0 assumptions for write set-up and hold equations: 1. t bdds and t bdd are equal (board delays are same both for dqs_out and ddr_dq_out ). 2. t cdq and t cdqs are equal (both are output delays from i/o flop). therefore: 1/2 clk2x - t dh > 0 3.75/2 - 0.75 > 0 1.125 > 0 address and command signals address ( ddr_ad ) and command signals ( ddr_cas , ddr_ras , ddr_we ) should meet set-up (t ds ) and hold (t dh ) timings at ddr interface with respect to positive edge of ddr_clk . address and command signals are clocked using negative edge of pll_mclk inside the fpga as shown below. the ddr_clk signal is a delayed by pad delay and board delay at ddr interface compared to pll_mclk inside the fpga. as a result, 1/2 clkx of set-up and hold is provided by design.
board timing guidelines lattice semiconductor for the ddr sdram controller ip core 18-6 table 18-3. timing arcs for address and command signals figure 18-4. timing diagram for address and command signals set-up calculation max delay of clock to ddr = t ddr_clk (max) + t bdc + t ck * 1/2 - t skew - t ds max delays of command signals data to ddr = t cctrl (max) + t bdctrl to meet set up time at ddr memory, clock delay - data delay > 0 therefore: t ddr_clk (max) + t bdc + t ck * 1/2 - t skew - t ds - t cctrl (max) - t bdctrl > 0 isolating the board delays, we get: t bdctrl - t bdc < t ddr_clk (max) + t ck * 1/2 - t skew - t ds - t cctrl (max) t bdctrl - t bdc < 2.47 + 3.75 - 0.3 - 0.75 - 4.834 t bdctrl - t bdc < 0.336 ns symbol description orca4 t cctrl (max) is the clock-to-out time for ddr_ad and command signals.  (clock path delay - feedback path) + data path delay 4.834 ns t cctrl (min) is the clock-to-out time for ddr_ad and command signals.  (clock path delay - feedback path) + data path delay 2.147 ns t bdctrl is the board delay of ddr_ad and command signals from  fpga pins to ddr sdram pins. pll_mclk (clkx) ddr_ad, command_signals t cctrl at fpga at ddr interface ddr_clk t ddr_clk + t bdc ddr_ad, command_signals t bdctrl t skew t skew t ds t dh clk
board timing guidelines lattice semiconductor for the ddr sdram controller ip core 18-7 hold calculation min delay of command signals data to ddr = t cctrl (min) + t bdctrl + t ck * 1/2 min delay of clock to ddr = t ddr_clk (min) + t bdc + t skew + t dh to meet hold time at ddr memory, data delay - clock delay > 0 therefore: t cctrl (min) + t bdctrl + t ck * 1/2 - t ddr_clk (min) - t bdc - t skew - t dh > 0 isolating the board delays, we get: t bdctrl - t bdc > - t cctrl (min) - t ck * 1/2 + t ddr_clk (min) + t skew + t dh t bdctrl - t bdc > -2.147 - 3.75 + (1.138) + 0.3 + 0.75 t bdctrl - t bdc > -3.709 t bdctrl - t bdc > -3.709 ns conclusion: to meet set-up and hold timings of command signals, board delay of command signals ddr_clk and ddr_clk_n should be: -3.709 ns < (t bdctrl - t bdc ) < 0.336 ns board design guidelines ?he ddr_clk and ddr_clk_n pads should be placed adjacent to each other in the fpga to get similar internal fpga delays. ?he ddr_clk and ddr_clk_n trace delays on the board should be matched. the dq trace delays can be calculated using the following formula, for memory reads:  t skew + t fdh - t ac (min) - t pd - t ddr_clk + t fpga_clk < (t bdd + t bdc ) < (t ck * 1/2) - t skew - t fds - t ac (max) - t pd - t ddr_clk + t fpga_clk ?he dq and dqs trace lengths should be balanced and matching to get maximum set-up/hold time during memory writes. ?he address and control signals for the ddr sdram are generated on the negati ve edge of the fpga clock. the trace lengths for address and control lines are calculated using following equation:  -t cctrl - t ck * 1/2 + t ddr_clk + t skew + t dh < (t bdctrl - t bdc ) < t ddr_clk + t ck * 1/2 - t skew - t ds - t cctrl + t bdc ?s shown in figure 18-1 , both fpga internal clock and ddr_clk are generated by a single pll. it may be difficult to meet read data set-up and hold timing with a single pll. as shown in figure 18-5 , a two-pll clocking scheme is proposed to meet read data set-up and hold timing. adjusting feedback delay of pll2 can control delay of pll_mclk . increasing delay on pll_mclk can increase the read set-up margin but it also decreases the hold margin. to get better timing, skew between ddr_clk and pll_mclk has to be minimized.
board timing guidelines lattice semiconductor for the ddr sdram controller ip core 18-8 figure 18-5. two pll clocking scheme technical support assistance hotline: 1-800-lattice (north america) +1-503-268-8001 (outside north america) e-mail: techsupport@latticesemi.com internet: www.latticesemi.com ddrct_np ip core ppll div3 div2 div0 div1 hppll n-stage tbufs ddr_clk (133mhz) ddr_clk_n (133mhz) sysclock 133mhz clkin mclk fb nclk div3 div2 div0 div1 clkin mclk fb nclk pll1 pll2 pll_nclk (266mhz) pll_mclk (133mhz) pll1_nclk (133mhz) pio pio user interface ddr sdram memory
board timing guidelines lattice semiconductor for the ddr sdram controller ip core 18-9 appendix a. example extractions of delays from timing reports from the set-up report below, which was run for max conditions: ? pd = 0.0 ns ? fds = 3.195 ns ? fpga_clk (max) = 6.206 - 3.271 = 2.935 ns =============================================================== preference: input_setup port ?dr_dq_*?2.000000 ns clknet pll_nclk?; 32 items scored, 0 timing errors detected. --------------------------------------------------------------------------------------------- ------------------------------------ passed: the following path meets requirements by 1.740ns logical details: cell type pin type cell name (clock net +/-) source: port pad ddr_dq_23 destination: o-ff in data in u1_ddrct_np_o4_1_008/u3_databusif/ddr_dqoez0z_23 (to pll_nclk +) data path delay: 0.000ns (0.0% logic, 0.0% route), 0 logic levels. clock path delay: 6.206ns (29.3% logic, 70.7% route), 2 logic levels. constraint details: 0.000ns delay ddr_dq_23 to ddr_dq_23 less 2.000ns offset ddr_dq_23 to clk (totaling -2.000ns) meets 6.206ns delay clk to ddr_dq_23 less 3.271ns feedback compensation less 3.195ns inreg_set requirement (totaling -0.260ns) by 1.740ns physical path details: data path ddr_dq_23 to ddr_dq_23: name fanout delay (ns) site resource -------- 0.000 (0.0% logic, 0.0% route), 0 logic levels. clock path clk to ddr_dq_23: name fanout delay (ns) site resource in_del --- 1.431 ab4.pad to ab4.inck clk route 1 0.816 ab4.inck to llhppll.clkin clk_c nclk_del --- 0.385 llhppll.clkin to llhppll.nclk u2_ddr_pll_orca/ddr_pll_0_0 route 136 3.574 llhppll.nclk to n24.sc pll_nclk -------- 6.206 (29.3% logic, 70.7% route), 2 logic levels.
board timing guidelines lattice semiconductor for the ddr sdram controller ip core 18-10 feedback path: name fanout delay (ns) site resource nclk_del --- 0.385 llhppll.clkin to llhppll.nclk u2_ddr_pll_orca/ddr_pll_0_0 route 136 2.886 llhppll.nclk to llhppll.fb pll_nclk -------- 3.271 (11.8% logic, 88.2% route), 1 logic levels. report: 0.260ns is the minimum offset for this preference. from the hold report below, which was run for min conditions: t pd = 0.0 ns t fdh = -1.609 ns t fpga_clk (min) = 3.144 - 1.905 = 1.239 ns =============================================================== preference: input_setup port ?dr_dq_*?2.000000 ns clknet pll_nclk?; 32 items scored, 0 timing errors detected. --------------------------------------------------------------------------------------------- --------------- passed: the following path meets requirements by 0.370ns logical details: cell type pin type cell name (clock net +/-) source: port pad ddr_dq_31 destination: io-ff in data in u1_ddrct_np_o4_1_008/u3_databusif/ddr_dqoez0z_31 (to pll_nclk +) data path delay: 0.000ns (0.0% logic, 0.0% route), 0 logic levels. clock path delay: 3.144ns (25.7% logic, 74.3% route), 2 logic levels. constraint details: 0.000ns delay ddr_dq_31 to ddr_dq_31 plus 0.000ns hold offset ddr_dq_31 to clk (totaling 0.000ns) meets 3.144ns delay clk to ddr_dq_31 plus 1.905ns feedback compensation less -1.609ns inreg_hld requirement (totaling -0.370ns) by 0.370ns physical path details: data path ddr_dq_31 to ddr_dq_31: name fanout delay (ns) site resource -------- 0.000 (0.0% logic, 0.0% route), 0 logic levels.
board timing guidelines lattice semiconductor for the ddr sdram controller ip core 18-11 clock path clk to ddr_dq_31: name fanout delay (ns) site resource in_del --- 0.576 ab4.pad to ab4.inck clk route 1 0.507 ab4.inck to llhppll.clkin clk_c nclk_del --- 0.231 llhppll.clkin to llhppll.nclk u2_ddr_pll_orca/ddr_pll_0_0 route 136 1.830 llhppll.nclk to c25.sc pll_nclk -------- 3.144 (25.7% logic, 74.3% route), 2 logic levels. feedback path: name fanout delay (ns) site resource nclk_del --- 0.231 llhppll.clkin to llhppll.nclk u2_ddr_pll_orca/ddr_pll_0_0 route 136 1.674 llhppll.nclk to llhppll.fb pll_nclk -------- 1.905 (12.1% logic, 87.9% route), 1 logic levels. report: there is no minimum offset greater than zero for this preference. from the set-up report below, which was run for max conditions: t ddr_clk (max) = 5.741 - 3.271 = 2.47 ns =========================================================================== preference: clock_to_out port ?dr_cas_n?max 5.500000 ns clkport ?lk clkout port ?dr_clk? ; 1 item scored, 0 timing errors detected. --------------------------------------------------------------------------------------------- ------------------------------------ passed: the following path meets requirements by 3.182ns logical details: cell type pin type cell name (clock net +/-) source: unknown q u1_ddrct_np_o4_1_008/u1_cmdexe/ddr_cas_nz0 (from ddr_clk_c -) destination: port pad ddr_cas_n data path delay: 1.713ns (100.0% logic, 0.0% route), 1 logic levels. clock path delay: 6.346ns (28.6% logic, 71.4% route), 2 logic levels. constraint details: 6.346ns delay clk to ddr_cas_n less 3.271ns feedback compensation 1.713ns delay ddr_cas_n to ddr_cas_n less 2.470ns delay clk to ddr_clk (totaling 2.318ns) meets 5.500ns offset clk to ddr_cas_n by 3.182ns physical path details: clock path clk to ddr_cas_n:
board timing guidelines lattice semiconductor for the ddr sdram controller ip core 18-12 name fanout delay (ns) site resource in_del --- 1.431 ab4.pad to ab4.inck clk route 1 0.816 ab4.inck to llhppll.clkin clk_c mclk_del --- 0.385 llhppll.clkin to llhppll.mclk u2_ddr_pll_orca/ddr_pll_0_0 route 449 3.714 llhppll.mclk to ae15.sc ddr_clk_c -------- 6.346 (28.6% logic, 71.4% route), 2 logic levels. data path ddr_cas_n to ddr_cas_n: name fanout delay (ns) site resource outreg_del --- 1.713 ae15.sc to ae15.pad ddr_cas_n (from ddr_clk_c) -------- 1.713 (100.0% logic, 0.0% route), 1 logic levels. clock out path: name fanout delay (ns) site resource in_del --- 1.431 ab4.pad to ab4.inck clk route 1 0.816 ab4.inck to llhppll.clkin clk_c mclk_del --- 0.385 llhppll.clkin to llhppll.mclk u2_ddr_pll_orca/ddr_pll_0_0 route 449 1.191 llhppll.mclk to af3.outdd ddr_clk_c outdd_del --- 1.918 af3.outdd to af3.pad ddr_clk -------- 5.741 (65.0% logic, 35.0% route), 3 logic levels. feedback path: name fanout delay (ns) site resource nclk_del --- 0.385 llhppll.clkin to llhppll.nclk u2_ddr_pll_orca/ddr_pll_0_0 route 136 2.886 llhppll.nclk to llhppll.fb pll_nclk -------- 3.271 (11.8% logic, 88.2% route), 1 logic levels. report: 2.318ns is the minimum offset for this preference. from the hold report below, which was run for min conditions: t ddr_clk (min) = 3.043 - 1.905 = 1.138 ns =========================================================================== preference: clock_to_out port ?dr_cas_n?max 5.500000 ns clkport ?lk clkout port ?dr_clk? ; 1 item scored, 0 timing errors detected. --------------------------------------------------------------------------------------------- ------------------------------------ passed: the following path meets requirements by 1.056ns logical details: cell type pin type cell name (clock net +/-) source: unknown q u1_ddrct_np_o4_1_008/u1_cmdexe/ddr_cas_nz0 (from ddr_clk_c -) destination: port pad ddr_cas_n
board timing guidelines lattice semiconductor for the ddr sdram controller ip core 18-13 data path delay: 0.928ns (100.0% logic, 0.0% route), 1 logic levels. clock path delay: 3.171ns (25.4% logic, 74.6% route), 2 logic levels. constraint details: 3.171ns delay clk to ddr_cas_n less 1.905ns feedback compensation 0.928ns delay ddr_cas_n to ddr_cas_n less 1.138ns delay clk to ddr_clk (totaling 1.056ns) meets 0.000ns hold offset clk to ddr_cas_n by 1.056ns physical path details: clock path clk to ddr_cas_n: name fanout delay (ns) site resource in_del --- 0.576 ab4.pad to ab4.inck clk route 1 0.507 ab4.inck to llhppll.clkin clk_c mclk_del --- 0.231 llhppll.clkin to llhppll.mclk u2_ddr_pll_orca/ddr_pll_0_0 route 449 1.857 llhppll.mclk to ae15.sc ddr_clk_c -------- 3.171 (25.4% logic, 74.6% route), 2 logic levels. data path ddr_cas_n to ddr_cas_n: name fanout delay (ns) site resource outreg_del --- 0.928 ae15.sc to ae15.pad ddr_cas_n (from ddr_clk_c) -------- 0.928 (100.0% logic, 0.0% route), 1 logic levels. clock out path: name fanout delay (ns) site resource in_del --- 0.576 ab4.pad to ab4.inck clk route 1 0.507 ab4.inck to llhppll.clkin clk_c mclk_del --- 0.231 llhppll.clkin to llhppll.mclk u2_ddr_pll_orca/ddr_pll_0_0 route 449 0.778 llhppll.mclk to af3.outdd ddr_clk_c outdd_del --- 0.951 af3.outdd to af3.pad ddr_clk -------- 3.043 (57.8% logic, 42.2% route), 3 logic levels. feedback path: name fanout delay (ns) site resource nclk_del --- 0.231 llhppll.clkin to llhppll.nclk u2_ddr_pll_orca/ddr_pll_0_0 route 136 1.674 llhppll.nclk to llhppll.fb pll_nclk -------- 1.905 (12.1% logic, 87.9% route), 1 logic levels. report: 1.056ns is the maximum offset for this preference. ===========================================================================
board timing guidelines lattice semiconductor for the ddr sdram controller ip core 18-14 from the set-up report below, which was run for max conditions. the report shown here is for ddr_ad. t cctrl (max) = (6.392-3.271) + 1.713 = 4.834 ns find delays similarly for ddr_ras_n, ddr_cas_n, ddr_we_n, ddr_ba, ddr_cs_n and ddr_cke signals. then take the max of those delays as t cctrl (max). ============================================================================================ preference: clock_to_out port ?dr_ad_*?5.500000 ns clknet ?dr_clk_c?; 12 items scored, 0 timing errors detected. passed: the following path meets requirements by 0.666ns logical details: cell type pin type cell name (clock net +/-) source: unknown q u1_ddrct_np_o4_1_008/u1_cmdexe/ddr_adz0z_6 (from ddr_clk_c -) destination: port pad ddr_ad_6 data path delay: 1.713ns (100.0% logic, 0.0% route), 1 logic levels. clock path delay: 6.392ns (28.4% logic, 71.6% route), 2 logic levels. constraint details: 6.392ns delay clk to ddr_ad_6 less 3.271ns feedback compensation 1.713ns delay ddr_ad_6 to ddr_ad_6 (totaling 4.834ns) meets 5.500ns offset clk to ddr_ad_6 by 0.666ns physical path details: clock path clk to ddr_ad_6: name fanout delay (ns) site resource in_del --- 1.431 ab4.pad to ab4.inck clk route 1 0.816 ab4.inck to llhppll.clkin clk_c mclk_del --- 0.385 llhppll.clkin to llhppll.mclk u2_ddr_pll_orca/ddr_pll_0_0 route 449 3.760 llhppll.mclk to ae14.sc ddr_clk_c -------- 6.392 (28.4% logic, 71.6% route), 2 logic levels. data path ddr_ad_6 to ddr_ad_6: name fanout delay (ns) site resource outreg_del --- 1.713 ae14.sc to ae14.pad ddr_ad_6 (from ddr_clk_c) -------- 1.713 (100.0% logic, 0.0% route), 1 logic levels. feedback path: name fanout delay (ns) site resource nclk_del --- 0.385 llhppll.clkin to llhppll.nclk u2_ddr_pll_orca/ddr_pll_0_0 route 136 2.886 llhppll.nclk to llhppll.fb pll_nclk -------- 3.271 (11.8% logic, 88.2% route), 1 logic levels. report: 4.834ns is the minimum offset for this preference.
board timing guidelines lattice semiconductor for the ddr sdram controller ip core 18-15 from the hold report below, which was run for min conditions. the report shown here is for ddr_ad* only. t cctrl (min) = (3.124-1.905) + 0.928 = 2.147 ns find delays similarly for ddr_ras_n, ddr_cas_n, ddr_we_n, ddr_ba, ddr_cs_n and ddr_cke signals. then take the min of those delays as t cctrl (min). =========================================================================== preference: clock_to_out port ?dr_ad_*?5.500000 ns clknet ?dr_clk_c?; 12 items scored, 0 timing errors detected. passed: the following path meets requirements by 2.147ns logical details: cell type pin type cell name (clock net +/-) source: unknown q u1_ddrct_np_o4_1_008/u1_cmdexe/ddr_adz0z_4 (from ddr_clk_c -) destination: port pad ddr_ad_4 data path delay: 0.928ns (100.0% logic, 0.0% route), 1 logic levels. clock path delay: 3.124ns (25.8% logic, 74.2% route), 2 logic levels. constraint details: 3.124ns delay clk to ddr_ad_4 less 1.905ns feedback compensation 0.928ns delay ddr_ad_4 to ddr_ad_4 (totaling 2.147ns) meets 0.000ns hold offset clk to ddr_ad_4 by 2.147ns physical path details: clock path clk to ddr_ad_4: name fanout delay (ns) site resource in_del --- 0.576 ab4.pad to ab4.inck clk route 1 0.507 ab4.inck to llhppll.clkin clk_c mclk_del --- 0.231 llhppll.clkin to llhppll.mclk u2_ddr_pll_orca/ddr_pll_0_0 route 449 1.810 llhppll.mclk to t26.sc ddr_clk_c -------- 3.124 (25.8% logic, 74.2% route), 2 logic levels. data path ddr_ad_4 to ddr_ad_4: name fanout delay (ns) site resource outreg_del --- 0.928 t26.sc to t26.pad ddr_ad_4 (from ddr_clk_c) -------- 0.928 (100.0% logic, 0.0% route), 1 logic levels. feedback path: name fanout delay (ns) site resource nclk_del --- 0.231 llhppll.clkin to llhppll.nclk u2_ddr_pll_orca/ddr_pll_0_0 route 136 1.674 llhppll.nclk to llhppll.fb pll_nclk -------- 1.905 (12.1% logic, 87.9% route), 1 logic levels. report: 2.220ns is the maximum offset for this preference.
?2010 lattice semiconductor corp. all lattice trademarks, registered trademarks, patents, and disclaimers are as listed at www .latticesemi.com/legal. all other brand or product names are trademarks or registered trademarks of their respective holders. the specifications and information herein are subject to change without notice. www.latticesemi.com 19-1 tn1074_01.7 march 2010 technical note tn1074 introduction as ball grid array (bga) packages become increasingly popular and become more populated across the array with higher pin count and smaller pitch, it is important to understand how they are affected by various board layout techniques. this document provides a brief overview of pcb layout considerations when working with bga pack- ages. it outlines some of the most common problems and provides tips for avoiding them at the design stage. a key challenge of adopting fine-pitch (0.8 mm or less) bga packages is the design of a route fanout pattern that maxi- mizes i/o utilization while minimizing fabrication cost. th is technical note provides an overview of pcb design examples provided by lattice semiconductor. for more information and design examples see the pcb design support page at the lattice semiconductor web site ( www.latticesemi.com/support/pcbdesignsupport.cfm ). bga board layout recommendations all lattice bga packages have solder mask defined (smd) pads. in order to evenly balance the stress in the sol- der joints, lattice recommends pcb solder pads be smd wi th dimensions as similar to the applicable bga as pos- sible. if non solder mask defined pads (nsmd) are used, the optimum pad dime nsions will result in an equivalent surface contact area on the pcb as on the bga component. table 19-1. lattice semiconductor smd/nsmd pad recommendations pitch 0.4 mm ucbga pitch 0.5 mm csbga pitch 0.8 mm cabga pitch 1.00 mm (fpbga, ftbga, fpsbga, fcbga) pitch 1.27 mm pbga, sbga 100 fpbga, 256 ftbga all other fpbga, ftbga,fpsbga 1020 organic fcbga all other fcbga solder mask defined (smd) pad recommendations optimum solder land diameter 1 0.25 0.40 0.50 0.50 0.55 0.65 0.60 0.73 solder land diameter range 0.20 - 0.25 0.25 - 0.40 0.40 - 0.60 0.40 - 0.60 0.45 - 0.70 0.45 - 0.70 0.45 - 0.70 0.55 - 0.85 optimum solder mask opening (m) 0.20 0.25 0.40 0.40 0.45 0.55 0.50 0.63 solder mask opening range 0.18 - 0.22 0.20 - 0.30 0.35 - 0.50 0.35 - 0.50 0.40 - 0.60 0.40 - 0.60 0.40 - 0.60 0.50 - 0.75 non solder mask defined (nsmd) pad recommendations optimum solder land diameter (l) 0.16 0.23 0.35 0.35 0.40 0.52 0.45 0.58 solder land diameter range 0.14 - 0.18 0.20 - 0.30 0.35 - 0.50 0.35 - 0.50 0.40 - 0.60 0.40 - 0.60 0.40 - 0.60 0.50 - 0.78 optimum solder mask opening 1 0.22 0.35 0.45 0.50 0.55 0.70 0.60 0.73 solder mask opening range 0.20 - 0.25 0.30 - 0.40 0.45 - 0.55 0.45 - 0.60 0.50 - 0.70 0.50 - 0.85 0.50 - 0.75 0.60 - 0.88 1. assuming 0.050 mm solder mask tolerance. pcb layout recommendations for bga packages
pcb layout recommendations lattice semiconductor for bga packages 19-2 table 19-2. lattice semiconductor bga package types bga breakout and routing examples lattice provides several resources and different design im plementations that show bga breakout and routing of various fine-pitch bga packages. different stack up and layer counts are also used to show a range of design rules and fabrication costs. it is important to consult with your board fabrication and assembly houses as to the most economical and reliable process for your application. currently there is a wide choice of bgas from lattice, with many devices offered in multiple packages and pitches of bga densities as well as non-bga options such as tqfp, qfn and others. the bga pitch or ?enter to center? ball dimensions include, 1.00 mm bgas, space-saving 0.5 mm pitch chip scale bga and 0.4mm pitch ultra chip scale bga packages. fine pitch packages offer advantages and disadvantages alike. finer pitch means that the trace and space limits will have to be adjusted down to match the bga. ma ny times a design can get away with small traces underneath the bga then fan out with a slightly larger trac e width. the pcb fabrication facility will need to be aware of your design objectives and check for the smallest trace dimensions supported. smaller traces take more time to inspect, check and align etc. etching needs to be closely monitored when trace and space rules reach their lower limit. the combination of fanout traces, escape vias, and escape traces that allow routing out from under the bga pin array to the perimeter of the device are collectively referred to as the ? ga breakout? the fanout pattern will arrange the breakout via, layer, and stack-up to maximize the number of i/os that can be routed. fanout patterns are an important consideration for devices over 800 pins and can be follow polar (north/south/east/west) or layer- biased directions. (source: bga breakouts and routing , charles pfeil, mentor graphics). package type description pbga plastic bga with 1.27 mm solder ball pitch. die up configuration. fpbga fine pitch bga plastic bga with 1.0 mm solder ball pitch. die up configuration. ftbga fine pitch thin bga thin plastic bga with 1.0 mm solder ball pitch. die up configuration. cabga chip array bga plastic bga with 0.8 mm solder ball pitch. die up configuration. csbga chip scale bga plastic bga with 0.5 mm solder ball pitch. die up configuration. fcbga flip-chip bga with 1.0 mm solder ball pitch. die down conf iguration. may have a ceramic or plastic sub- strate. sbga super bga similar to pbga, but with an integrated heat sink plate. this package has 1.27 mm solder ball pitch and die down configuration. sbga pack ages offer enhanced thermal dissipation capability. fpsbga fine pitch sbga super bga with 1.0 mm solder ball pitch. die down configuration. ucbga ultra chip bga saw singulated plastic ball grid array package with 0.4 mm ball pitch.
pcb layout recommendations lattice semiconductor for bga packages 19-3 figure 19-1. bga breakout routing terms lattice provides bga breakout and routing examples for various fine pitch packages ( www.latticesemi.com/sup- port/pcbdesignsupport/bgabreakoutroutingexample/index.cfm ). each package example is built to comply with ipc7351 (www.ipc.org) specifications and nomenclature conventions. some examples include different layout options depending on design and cost goals. for example, the 256-ball chip array bga (bn256) examples demon- strate a design with fully-utilized i/os, fine trace width an d pitch, on a 6-layer pcb stack-up and a less expensive design with relaxed design rules, and fewer i/o pads routed, on a 4-layer pcb stack up. table 19-3. package layout example summary for mechanical dimension details on packages, see the lattice package diagrams document. in order to show how some of the routing challenges are solved, examples are provided for fine-pitch bga pack- ages from the machxo and the ispmach 4000ze families. principles for these apply to other lattice bga packaged products. package example # pitch (mm) signal/ power layers trace/ width- space (mm) ball pad (mm) ball mask (mm) via pad (mm) via drill (mm) mn64 1 0.5 6 .100/.100 .23 .33 .30 .125 umn64 1 0.4 6 .100/.100 .18 .28 .25 .10 mn100 10.54.085/.085.23.38.45.20 20.54.100/.100.23.38.45.20 mn132 10.54.085/.085.23.38.40.15 20.54.100/.100.23.38.40.15 mn144 10.56.100/.100.23.33.30.125 20.54.100/.100.23.38.30.125 bn256 10.86.100/.100.35.50.40.125 20.84.100/.100.35.50.40.15
pcb layout recommendations lattice semiconductor for bga packages 19-4 64-ball csbga bga breakout and routing example this example places an ispmach 4000ze cpld in a 5x 5 mm, 0.5 mm pitch, 64-ball csbga package (lc4064ze- mn64) in an 6-layer stack up with maximum i/o utilization. figure 19-2. cam artwork screen shots 64-ball csbga layer 1 primary layer 2 signal layer 3 gnd layer 4 power layer 5 signal layer 6 secondary
pcb layout recommendations lattice semiconductor for bga packages 19-5 64-ball ucbga bga breakout and routing example this example places an ispmach 4000ze cpld in a 4x4 mm, 0.4 mm pitch, 64-ball ucbga package (lc4064ze- umn64) in an n-layer stack up wit h maximum i/o utilization. this exam ple demonstrates a modified dogbone fanout technique to get access to all pins yet limiting number of layers and via schedules, while setting up layers to use reference planes for high-speed signal traces. figure 19-3. cam artwork screen shots, 64-ball ucbga layer 1 primary layer 2 gnd layer 3 signal layer 4 signal layer 5 power layer 6 secondary
pcb layout recommendations lattice semiconductor for bga packages 19-6 100-ball csbga bga breakout and routing examples these examples place a machxo pld in a 8x8 mm , 0.5 mm pitch, 100-ball csbga package (lxmxo640- m100/mn100) into two fabrication scenarios. one for a 6-layer stack up with maximum i/o utilization and a 4-layer with about 15% fewer i/os. the 4-layer (example #2) design makes maximum use of via and trace geometry to reduce layer count and ease fabrication while still maintaining high i/o usage. figure 19-4. cam artwork screen shots, example #1, 100-ball csbga layer 1 primary layer 2 gnd layer 3 power layer 4 secondary
pcb layout recommendations lattice semiconductor for bga packages 19-7 figure 19-5. cam artwork screen shots, example #2, 100-ball csbga layer 1 primary layer 2 gnd layer 3 power layer 4 secondary
pcb layout recommendations lattice semiconductor for bga packages 19-8 132-ball csbga bga breakout examples these examples place a machxo pld in a 8x8 mm, 0.5 mm pitch, 132-ball csbga package (lcmxo640- m132/mn132) into two fabrication scenarios. one for a 6-layer stack up with maximum i/o utilization and a 4-layer with about 15% fewer i/os. figure 19-6. cam artwork screen shots, example #1, 132-ball csbga layer 1 primary layer 2 gnd layer 3 power layer 4 secondary
pcb layout recommendations lattice semiconductor for bga packages 19-9 figure 19-7. cam artwork screen shots, example #2, 132-ball csbga layer 1 primary layer 2 gnd layer 3 power layer 4 secondary
pcb layout recommendations lattice semiconductor for bga packages 19-10 144-ball csbga bga breakout examples these examples place an ispmach 4000ze in a 7x7 mm, 0.5 mm pitch, 144-ball csbga package (lc4256ze- mn144) into two fabrication scenarios . one for a 6-layer stack up with maxi mum i/o utilization and a 4-layer with about 5% fewer i/os. the 6-layer (example #1) design avoids uses of micro vias and takes advantage of removed pads on inner layers to route all pins out to 6 layers with good layer structure for high-speed signal integrity. figure 19-8. cam artwork screen shots, example #1, 144-ball csbga layer 1 primary layer 2 gnd layer 3 signal layer 4 signal layer 5 power layer 6 secondary
pcb layout recommendations lattice semiconductor for bga packages 19-11 figure 19-9. cam artwork screen shots, example #2, 144-ball csbga layer 1 primary layer 2 gnd layer 3 power layer 4 secondary
pcb layout recommendations lattice semiconductor for bga packages 19-12 256-ball cabga bga breakout examples this bga breakout and routing example places a machxo pld in a 14x14 mm, 0.8 mm pitch, 256-ball cabga package (lcmxo2280-b256/bn256) into two fabrication scenarios. one for a 6-layer stack up with maximum i/o utilization and a 4-layer with about 10% fewer i/os. the 6- layer design (example #1), dem onstrates the best use of mechanically drill blind vias to place caps near power pins to minimize layers. figure 19-10. cam artwork screen shots, example #1, 256-ball cabga layer 1 primary layer 2 signal layer 3 gnd layer 4 power layer 5 signal layer 6 secondary
pcb layout recommendations lattice semiconductor for bga packages 19-13 figure 19-11. cam artwork screen shots, example #2, 256-ball cabga pcb fabrication cost and de sign rule considerations pcb fabrication cost is a key consideration for many electronics products. by reviewing the ic device package ball density and pitch, i/o signal requirements of your application, and the manufacturing constraints of your pcb fabri- cation facility you can better weigh t he trade-offs between design decisions. choosing the best package for your application involves answering a few questions: ?hat is the driving factor in the application? the smallest possible form factor or a low pcb cost? how many i/o signals does the application require? ?hat pcb layer stack up will provide the best i/o dens ity within budget? what layout design rules does the printed-circuit board (pcb) vendor support? how many pcb layers does the budget allow? as the ball pitch becomes smaller with each new bga generation, new pcb fabrication techniques and signal via type have been developed to handle the complexities. micro vias, laser vias, f illed, buried and blind vias, even bur- ied and plated over vias. complex boards use a combination of most of these. layer 1 primary layer 2 gnd layer 3 power layer 4 secondary
pcb layout recommendations lattice semiconductor for bga packages 19-14 stack-up types, ordered by cost, high-to-low include: ?igh-density interconnect ( hdi) build up with micro vias ?aminated with blind and buried vias ?aminated with through vias figure 19-12. stack-up example hdi is a ?andwich?with older-style la rger geometry in the middle with fully drilled through holes and then a stack of fine geometry of blind, buried or mixed via, laminated both on the top and bottom of the middle stack-up. the laminated layers are thinner than traditional layers and allow finer drilli ng technology. staggered micro vias allow vias within close tolerance or connected to a bga pad to go down to the next layer or more to route away for escape routing or underneath the bga device for further interconnect. hdi type interconnect is used on complex boards and takes extra steps in the processing flow due to special drilling, plating an laminations. it is a mix of older technology mixed with newer technology that results in a board that is highly routable. figure 19-13. hdi stack-up with staggered micro vias advantages and disadvantages of bga packaging as pin counts increase and board space becomes more valu able, it is important to place as many circuits per square inch as possible. bga offer the best i/o density for a given pcb area. lattice offers a range of packages from a 4x4 mm 64-ball csbga to a 33x33 mm 1704-ball fcbga. one of the greatest advantages of bga packaging is that it can be supported with existing placement and assem- bly equipment. bgas also offer signif icantly more misalignment tolerance an d less susceptibility to co-planarity issues. even if the solder paste is mi saligned or the device is slightly o ffset, the bga will self-center during the
pcb layout recommendations lattice semiconductor for bga packages 19-15 reflow process. this is due to the surf ace tension of the solder and flux in it s molten state pulling each ball into the center of the pad. figure 19-14. misalignment of bga balls vs. qpf leads controlling the oven re-flow profile is one of the most important assembly parameters for consistent and reliable bga placement. profiles are typically tested on a pre-run. one or two panels are run to dial in the process, then visual and x-ray inspection equipment are used for verification. bga packages present numerous benefi ts previously unobtainable in surf ace mount packaging technology. bgas provide higher pin counts in a much smaller area than was previous possible. no longer is the package design lim- ited to connections along the periphery on the outside quadrants of the package edge like a pqfp or tqfp out- line. fully populated ball grid arrays with pitches as small as 0.4 mm are available. some bga devices are arranged with de-populated interconnect near or around the center. these are dependent on the die size and number of pins. the area void of interconnect in the middle of the array has some advantages, it can be used for escape routing vias or tying directly to the ground or power planes. although the packages can be quite complex and densely populated, all of these packages receive strict quality and reliability testing and are widely acc epted today by designers and pcb fabric ation/assembly houses. all of this is due to advances in equipment and technology that have allowed a smooth transition into the assembly flow. bga package test and assembly how can a pad/ball/pin be tested that can? be seen? all connections are hidden under the substrate at the ball interconnect, making it impossible to directly probe or test. to address this limitation, lattice programmable devices provide jtag, bscan, and boundary scan cells that allow electronic test and continuity of each pin with a bound- ary scan tester. this can be embedded into the system itself or driven externally from a high-speed test head. the boundary scan can test the pins or board for simple continuity tests or full functional test by shifting in test patterns through the jtag port. for debug or prototype boards it may be necessary to place test points, open vias, or pads to have access to a given set of pins in order to drive, over-drive or observe a given set of signals. these can be very small, as many
pcb layout recommendations lattice semiconductor for bga packages 19-16 pogo pin type probes are extremely small and can handle ghz range dc frequency. zero ohm resistors are also commonly used in first-run boards as a way to gain access to a pad or pin. after assembly, bga solder point quality and integrity is visually inspected with x-ray technology as part of the fab- rication process. a special x-ray mach ine can look through the plastic packag e, substrate and silicon to directly view the bga solder balls, vias, traces and pads. figure 19-15. example of how defects may appear in an x-ray image the x-ray image in figure 19-16 shows proper alignment; no voids or defects are noted. balls, vias and traces are visible. figure 19-16. x-ray inspection plot of ispmach 4000ze 144-ball csbga  (photo courtesy of cem, ltd., www.cemltd.com )
pcb layout recommendations lattice semiconductor for bga packages 19-17 pcb cross-sectioning is another meth od used to verify bga and pcb qualit y and reliability. after a new process has been developed or changed or when qualifying a new vendor, it is a good practice to get physical information from the vendor on their bga reflow. wh en trace/space and drill or laser tolera nces are nearing their limits, board yield can be as be as low as 50% for the bare board fab. cross-sections give you a good idea if the process is cor- rect but do not guarantee each batch or each board design will behave the same way due to la yout dimensions, thermal issues, flux/paste and alignment, etc. figure 19-17 shows a bga cross-section that uses a non-soldermask over bare copper-defined pad. (nsmd) pad. figure 19-17. bg a cross-section figure 19-18 shows ?ffset micro via stack routing between layers. figure 19-18. cross-section of micro vias high-resolution video cameras are used for edge inspection to verify ball seating, distortion, solder wetting, flow, contaminates, etc. figure 19-19 is a video view of a side/edge shot looking at bga balls soldered down to the isp- mach 4000ze pico evaluation board ( www.latticesemi.com/4000ze-pico-kit ), an fr4 4-layer pcb.
pcb layout recommendations lattice semiconductor for bga packages 19-18 figure 19-19. edge view camera inspection in the photos samples above, trained technicians and computer camera recognition equipment are used for inspec- tion of the x-ray results, looking for voids, shorts, missing connections, contaminants, alignment or other gross fail- ure mechanisms. for example, in figure 19-19, the bga ball connections appear to be squashed downward, with mild distortion, insuring that proper oven profile temperatures were achieved. these technologies help in the successful placement and long term use of bgas in the industrys latest products. further advancements have been made in material content to conform to environmental issues, toxic materials and recycling. another issue that relates to board design is the physical silkscreen logos and information related to recycling, lead content and other hazardous waste components, strict adherence must be paid to these require- ments. although a documentation and silkscreen issue, it can become a challenge to fit this information on the board in some cases due to component population and must be accounted for in overall board real estate. pcb design support lattice provides a collection of pcb design resources at www.latticesemi.com/support/pcbdesignsupport.cfm including schematic libraries, pcb cam viewers, technical notes, and bga breakout and routing examples. technical support assistance hotline: 1-800-lattice (north america) +1-503-268-8001 (outside north america) e-mail: techsupport@latticesemi.com internet: www.latticesemi.com
pcb layout recommendations lattice semiconductor for bga packages 19-19 revision history date version change summary january 2005 01.0 initial release. november 2005 01.1 figures updated. june 2006 01.2 removed nsmd content. september 2006 01.3 added note to bga board layout recommendations table. reformatted bga package types section in tabular format. march 2008 01.4 revised recommended solder mask defined and non solder mask defined pcb solder pad dimensions to match industry standards. may 2009 01.5 updated bga board layout recommendations table and bga pack- age types table for 0.4 mm pitch ucbga package. february 2010 01.6 edits to most sections and additional links and graphics added for each example. march 2010 01.7 replaced lattice bga naming conventions table with lattice semicon- ductor bga package types table and smd/nsmd pad recommenda- tions table.
www.latticesemi.com 21-1 tn1078_04.0 october 2005 technical note tn1078 ?2004 lattice semiconductor corp. all lattice trademarks, registered trademarks, patents, and disclaimers are as listed at www .latticesemi.com/legal. all other brand or product names are trademarks or registered trademarks of their respective holders. the specifications and information herein are subject to change without notice. introduction like all sram fpgas the latticeecp and latticeec devi ces need to be configured at power-up. this configu- ration can be done via: 1. serial peripheral interface (spi) boot memory 2. traditional fpga boot memory 3. jtag 4. microprocessor interface if a boot memory is desired the spi approach provides a number of advantages over traditional fpga boot mem- ory: 1. spi devices are available from multiple vendors ensuring stable supply 2. the cost of spi memory is up to 75% less than traditional fpga boot memory 3. spi memory is available in space saving 8-pin packages that are considerably smaller than packages used for traditional fpga boot memory like all boot memories, spi serial flash needs to be loaded with the fpga configuration data. there are three options for programming an spi memory used in conjun ction with a latticeecp/ec device. the spi memory can be configured off-board using a stand-alone programmer, the memory can be programmed on-board using its spi interface, or the memory can be programmed on-board via jtag through the latticeecp/ec device. this technical note details the on-board configuration of spi memory via the jtag interface. related documents the following documents are available for download from the lattice web site at www.latticesemi.com . latticeecp & ec low-cost fpga configurat ion via industry-standard spi serial flash latticeecp/ec family handbook ?attice technical note tn1053, latticeecp/ec sysconfig usage guide ispdownload cable data sheet hardware and soft ware requirements ?n ispdownload cable, either usb or parallel. refer to the ispdownload cable data sheet for part numbers ?roperly installed isplever 4.2 or later ?roperly installed ispvm system 14.3 or later spi/spix differences the majority of spi serial flash on the market support a common read operation code (op code). latticeecp/ec devices offer direct connection to these devices by har dwiring the read op code ( 03h) into the fpga silicon. these devices are sometimes referred to as spi3 devices because they support this common read op code. spix mode allows the latticeecp/ec to easily interface to spi serial flash devices that support a different read op code. this can be done with pull-up and pull-down resistors on the pcb wir ed to the spid[7:0] pins, telling the spi serial flash programming using ispjtag on latticeecp/ec fpgas
21-2 spi serial flash programming using ispjtag lattice semiconductor on latticeecp/ec fpgas fpga which read op code that particular flash devi ce supports. if the configuration pins cfg2, cfg1, and cfg0 are 0, 0, 1 (respectively) at power-up the fpga will use the read op code hardwired on the pcb to access the flash. table 21-1. device configuration codes table 21-2. manufacturers of spi3 compatible flash spi serial flash sizing as depicted in table 21-3, the density of the fpga determines the size requirement for the spi serial flash. smaller flash sizes can be realized by us ing the compression option in isplever. table 21-3. selecting flash density hardware this section describes how to physically wire the spi serial flash into a design. cfg2 cfg1 cfg0 configuration mode 000spi serial flash 001spix serial flash 1 0 0 master serial 101slave serial 1 1 0 master parallel 111slave parallel xxxispjtag (always available) note: the configuration mode pins indicate t he type of device the fpga will configure from at power-up. for spi serial flash t he mode pins should be se t to ?00?or ?01? manufacturer device family st microelectronics m25p nexflash nx25p silicon storage technology sst25vf saifun sa25f spansion s25fl pmc pm25lv atmel at25f note: this is not meant to be an exhaustive list of manufacturers or device families. family device max config bits (mb) required boot memory (mb) no comp comp (typ) latticeecp/ec ec1 0.6 1 25% ec3 1.1 2 25% ecp6/ec6 1.8 2 25% ecp10/ec10 3.1 4 25% ecp15/ec15 4.3 8 25% ecp20/ec20 5.3 8 25% ecp33/ec33 7.9 8 25%
21-3 spi serial flash programming using ispjtag lattice semiconductor on latticeecp/ec fpgas spi serial flash interface the standard pin-out for 8-pin spi serial flash memories is shown below (top view): figure 21-1. 8-pin spi flas h memory, standard pinout note: v ccio for the bank that drives the signals to the spi serial flash must match the spi serial flash v cc (today that voltage is 3.3v but this will change over time as fl ash chip geometries decrease). for all latticeecp/ec pack- ages these signals are located in bank 3. the spi interface is a 4-wire serial interface comprised of the following signals: 1. cs ?chip select, input: enables and disables device operation. when high the device is at standby power levels and the output is tri-stated. when low the device powers up and instructions can be written to and data read from the device. 2. clk ?serial clock, input : provides timing for the interface. the serial data input (di) is latched on the rising edge of clk. serial data output (do) changes after the falling edge of clk. 3. di ?serial data in, input : when the device is enabled (cs is low) this pin allows instructions, addresses, and data to be serially written to the device. data is latched on the rising edge of the clk. 4. do ?serial data out, output : when the device is enabled (cs is low) this pin allows data and status to be serially read from the device. data is shifted out on the falling edge of the clk. the spi interface also supports the following two functions: 1. hold input : allows device to be paused without de-selecting it. when hold is low do will be tri-stated while di and clk are ignored. this function is useful when multiple devices are sharing the same spi sig - nals. 2. wp ?write protection, input : used to prevent inadvertent writing of the status register block protect bits. note: the latticeecp/ec spi interface supports the basic 4-wi re interface, but the user is free to implement these additional functions if desired. ispjtag interface the ispjtag interface supports both ieee 1149.1 boundary scan and ieee 1 532 in-system configuration. stan- dard pinouts for 1x10, 1x8, and 2x5 download headers are shown in table 21-4. the 1x10 header is preferred but ultimately the header chosen will depend on the available download cable. all new download cables have uncom- mitted flywire connections, so they can be attached to any of the header styles. direction, in table 21-4, refers to the cable, for example output indicates an output from the cable to the fpga. 1 2 3 4 cs do wp gnd vcc hold clk di 8 7 6 5
21-4 spi serial flash programming using ispjtag lattice semiconductor on latticeecp/ec fpgas table 21-4. download header pinout 1. vccj v cc jtag: powers the ispdownload cable. 2. tdo test data out: serial data read from the test device to the cable. 3. tdi test data in: serial data written from the cable to the device. 4. programn : initiates a configuration sequence when asserted low. not used and should not be con- nected on the board. 5. trst test reset: not used and should not be connected on the board. 6. tms test mode select: controls the ieee 1149.1 state machine. 7. tck test clock: clocks the ieee 1149.1 state machine. 8. gnd : digital ground. 9. done optional, usb only: open drain, internal pull-up. a high indicates that the fpga configuration sequence 9 was completed successfully. 10. initn optional, usb only: open drain, internal pull-up. a high indicates that the fpga is ready to be configured. a low indicates the fpga is not ready to be configured, or an error occurred during configura- tion. note: use of the done and initn pins, while optional, does allow ispvm system to check that configuration com- pleted successfully. if done or initn are wired to the connector then the proper dialog box(es) must be checked in the cable and i/o port setup section of ispvm system. see the software section of this document for more details. pin name 1x10 1x8 2x5 direction description v ccj 1163.3v or 2.5v tdo 2 2 7 input test data out tdi 3 3 5 output test data in programn 4 4 10 output forces fpga config, n/c trst 5 5 9 output test reset, n/c tms 6 6 3 output test mode select gnd 7 7 2, 4, 8 ground tck 8 8 1 output test clock done 9 input fpga configuration complete, optional initn 10 input fpga ready for configuration, optional
21-5 spi serial flash programming using ispjtag lattice semiconductor on latticeecp/ec fpgas schematic the schematic in figure 21-2 illustrates how to wir e the ispjtag connector, fpga, and spi serial flash. figure 21-2. hardware schematic ?he download header has standard 0.1 inch pin-to-pin spacing. ?he 4.7k pull-down resistors prevent spurious clock pulses during v cc ramp-up. place the resistors close to their clock line to keep the stub length as short as possible. ?he cclk frequency can be as high as 50mhz, so keep this trace fairly short. ? ccio for the bank that drives the signals to the spi serial flash must match the spi serial flash v cc (today that voltage is 3.3v but this will change over ti me as flash chip geometries decrease). for all pack - ages these signals are located in bank 3. ?uring configuration cclk drives the spi serial flash clk pin, but once the fpga completes configura - tion cclk goes into tri-state. the cclk pin is not accessible by user code so cclk needs to be wired to a nearby general purpose i/o pin (gpio) to allow the fpga fabric to supply a clock to the spi serial flash. this pin is part of the soft spi interface and is un ique to each package. if the user embeds the soft spi interface into their code then this pin, along with the other pins wired to the spi serial flash, must be locked using the pre-map preference ed itor in isplever. a complete lis t of these pins is found in ta b l e 21-5 . ?n addition to standard decoupling practices, place a decoupling capacitor close to the connectors v ccj pin. any standard ceramic capacitor value may be used, for example 0.1 f, 0.01 f, etc. cclk /cs di do csspi sispi spido clk spi serial flash latticeecp/ec /hold /wp 3.3v 10k 4.7k cfg2 cfg1 cfg0 spid0* spid1 spid2 spid3 spid4 spid5 spid6 spid7 spix only pull-up or down as required spix only * in spix mode only, spid0 connects to do and a resistor ** this pin is unique for each package, see information below 3.3v 10k tdo tdi tms tck 4.7k initn done gpio ** spi = 000 spix = 001 tck tdi tdo 1x10 1 2 3 4 5 6 7 8 9 10 v ccj tms done (optional) (optional) initn
21-6 spi serial flash programming using ispjtag lattice semiconductor on latticeecp/ec fpgas table 21-5. pin locations for wi ring ecp/ec to spi serial flash 1 software the latticeecp/ec fpgas allow programming of the spi seri al flash via the ispjtag port by using a small piece of code to redirect the ispjtag 4-wire interface to the spi flash 4-wire interface. with the soft spi interface installed, ispjtag is free to read or write the spi serial flash while the fpga is execut- ing user code. this allows the user to perform fu nctions such as background configuration updates. latticeecp/ ec device fpga pin function spi signal 672 fpbga 484 fpbga 256 fpbga 208 pqfp 144 tqfp 100 tqfp ecp33 ec33 gpio clk ab26 y21 cclk clk v20 t20 csspin /cs y25 v21 sispi di w25 u21 spido do w26 v22 ecp20 ec20 gpio clk ab26 y21 cclk clk v20 t20 csspin /cs y25 v21 sispi di w25 u21 spido do w26 v22 ecp15 ec15 gpio clk y21 m13 cclk clk t20 l15 csspin /cs v21 m16 sispi di u21 k16 spido do v22 j16 ecp10 ec10 gpio clk y21 m13 113 cclk clk t20 l15 130 csspin /cs v21 m16 121 sispi di u21 k16 123 spido do v22 j16 124 ecp6 ec6 gpio clk y21 m13 113 77 cclk clk t20 l15 130 94 csspin /cs v21 m16 121 85 sispi di u21 k16 123 87 spido do v22 j16 124 88 ec3 gpio clk m13 113 77 52 cclk clk l15 130 94 66 csspin /cs m16 121 85 57 sispi di k16 123 87 59 spido do j16 124 88 60 ec1 gpio clk 113 77 52 cclk clk 130 94 66 csspin /cs 121 85 57 sispi di 123 87 59 spido do 124 88 60 1. spi is a four-wire interface; this table shows these wires plus the gpio pin that needs to be wired to cclk per figure 21-2.
21-7 spi serial flash programming using ispjtag lattice semiconductor on latticeecp/ec fpgas programming procedure in order to program spi serial flash via ispjtag the fpga must contain the soft spi interface. programming the spi serial flash with ispvm system and an ispdownload cable makes this transparent to the user. the soft- ware simply loads a default soft spi interface bitstream into the fpga and then loads the user bitstream into the flash. once programing of the spi serial flash is complete the fpga configures itself by reading the flash. again, software makes all of this transparent to the user so that it is no different than programming any other serial boot device. the following instructions describe the process of selecting the fpga, selecting the spi serial flash, and pro- gramming the spi serial flash. the following screen shots are from ispvm system 15.0. 1. connect the ispdownload cable to the appropriate header and apply power to the board. 2. start the ispvm system software. 3. from the main window click on the scan button located on the toolbar. the latticeecp/ec device should be detected automatically (if its not detected, check the ispjtag connections and make sure the board is powered up). the resulting screen should be similar to figure 21-3. figure 21-3. main window, scan complete 4. double-click the number in the index column and select the appropriate device to open the device infor - mation window, shown in figure 21-4 .
21-8 spi serial flash programming using ispjtag lattice semiconductor on latticeecp/ec fpgas figure 21-4. device information window 5. under device access options , select either spi flash programming or advanced spi flash pro - gramming . to use the default soft ip and program the spi serial flash with a single latticeecp/ec bit - stream, select spi flash programming . if the soft ip was instantiated into the your design, or if you need to merge multiple bitstreams into a single spi serial flash device, select advanced spi flash program - ming . a. spi flash programming i. under device access options , select spi flash programming . the spi serial flash device dialog shown in figure 21-5 will be displayed. figure 21-5. spi serial flash device dialog ii. click on the select button to select the target spi serial flash device. the spi serial flash select device dialog shown in figure 21-6 will be displayed.
21-9 spi serial flash programming using ispjtag lattice semiconductor on latticeecp/ec fpgas figure 21-6. select spi serial flash device dialog iii. select the target spi serial flash device and click the ok button. the spi serial flash device dialog shown in figure 21-7 will be displayed. figure 21-7. spi serial flash device dialog iv. click the ok button. the device information dialog shown in figure 21-8 will be displayed.
21-10 spi serial flash programming using ispjtag lattice semiconductor on latticeecp/ec fpgas figure 21-8. spi serial flash device information dialog v. under data file , select the latticeecp/ec bitstream to be programmed into the spi serial flash device. click the ok button. this will return you to the main ispvm window, shown in figure 21-9. proceed to step 6. figure 21-9. main window, spi programming
21-11 spi serial flash programming using ispjtag lattice semiconductor on latticeecp/ec fpgas b. advanced spi flash programming i. under device access options , select advanced spi flash programming , as shown in figure 21-4. ii. the fpga loader setup dialog will be launched. iii. click on cpld or fpga device . it should look similar to figure 21-10. iv. the default soft ip will aut omatically be added as the fpga loader application specific data file . if you instantiated the soft ip into your own design, click on the browse button to select your bitstream. clicking on the default button will reload the def ault soft ip bitstream. v. under operation , select fast program . figure 21-10. select fpga device vi. click on configuration data setup (see figure 21-11). vii. under configuration data file , click on browse to locate the user configuration file created using isplever. double-click on the file name. use the merging multiple configuration data files option if you want to merge multiple bitstreams into the spi serial flash device. multiple bitstreams would be used to configure multiple fpgas using one spi serial flash.
21-12 spi serial flash programming using ispjtag lattice semiconductor on latticeecp/ec fpgas figure 21-11. configuration data setup viii.select flash device in the left window (see figure 21-12). ix. under flash device , click select to choose the desired device; in this case an st micro device was selected. x. from the drop-down list under operation select erase, program, verify . figure 21-12. select flash device
21-13 spi serial flash programming using ispjtag lattice semiconductor on latticeecp/ec fpgas xi. click ok to exit the fpga loader window. this will return you to the main ispvm window, shown in figure 21-13. figure 21-13. main window, advanced spi flash programming 6. from the main project window, on the menu bar, click options > cable and i/o port setup . 7. check that the proper cable type is selected (parallel or usb) and that the prog, done, and init boxes (figure 21-14) are properly selected/de-selected based on how the ispjtag connector is wired up (see the hardware schematic se ction of this document). figure 21-14. cable and i/o port setup
21-14 spi serial flash programming using ispjtag lattice semiconductor on latticeecp/ec fpgas 8. click on ok . 9. from the main project window click the green go button on the toolbar; this will begin the download pro- cess. 10. upon successful download, in order to configure the fpga with the new configuration, the user must cycle power to the fpga or pulse the fpga's program pin low then high. including the spi interf ace in the fpga design if the user wishes jtag to have access to the spi serial flash while the fpga is operating, for instance to allow background configuration updates, then the soft spi interface must be instantiated into the user code. once a con- figuration bitstream containing the user code and the soft spi interface has been created the programming sequences will be identic al to those detailed above (see step 5). sample code the following code samples are simple vhdl and verilog files that show how to instantiate the netlist file, i.e. the soft spi interface. the netlist file should be placed in the same directory as the top design file. in the following examples the netlist file is called spitop.ngo. the netlist f ile, along with these sample sour ce files, is freely avail- able from the lattice semiconductor web site at www.latticesemi.com .
21-15 spi serial flash programming using ispjtag lattice semiconductor on latticeecp/ec fpgas vhdl library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity design_top is port ( rst : in std_logic; sclk : in std_logic; cnt_out : out std_logic_vector(7 downto 0); -- spi serial flash pins spi_c : out std_logic; -- clock spi_d : out std_logic; -- data input spi_sn : out std_logic; -- chip select spi_q : in std_logic -- data output ); end; architecture behave of design_top is --instantiate the file component spitop port ( spi_pin_c : out std_logic; spi_pin_d : out std_logic; spi_pin_sn : out std_logic; spi_pin_q : in std_logic ); end component; --user code signal cnt: std_logic_vector(7 downto 0); begin process(sclk, rst) begin if rst = '1' then cnt <= (others => '0'); elsif rising_edge(sclk) then cnt <= cnt + 1; end if; end process; cnt_out <= cnt; -- spitop port map spi_ip: spitop port map ( spi_pin_c => spi_c, spi_pin_d => spi_d, spi_pin_sn => spi_sn, spi_pin_q => spi_q ); end behave;
21-16 spi serial flash programming using ispjtag lattice semiconductor on latticeecp/ec fpgas verilog here is the same design in verilog. the soft spi interface is only needed to connect jtag to the spi serial flash interface. if the spi serial flash will be used by the user design, for instance as scratch memo ry, and background access via jtag will not be required, then the soft spi interface is not needed, and the user code can access the spi pins directly. remember that the configuration memory must start at address zero; any user defined memory space must be located above the con- figuration data. it is recommended that an address abov e the maximum possible configuration size be chosen. for instance if an ecp/ec20 device is being used, select a scratch pad starting address above 5.3mb (see table 21-3 in this document). locking the pins the last thing the user needs to do is tell isplever which pins are c onnected to the spi serial flash device (see figure 21-2 and table 21-5). from the isplever project navigator window click on the package name in the left window, then double click on the pre-map preference editor in the right window (see figure 21-15). module design_top(rst, sclk, cnt_out, spi_c, spi_d, spi_sn, spi_q) ; input sclk, rst; output [7:0] cnt_out; // spi serial flash pins input spi_q; output spi_d, spi_sn, spi_c; reg [7:0] cnt_out; // user code always @ (posedge sclk or posedge rst) begin if (rst) cnt_out = 2'h00; else cnt_out = cnt_out + 1; end // instantiate soft spi interface spitop spi_ip ( .spi_pin_c(spi_c), .spi_pin_d(spi_d), .spi_pin_sn(spi_sn), .spi_pin_q(spi_q) ); endmodule module spitop (spi_pin_c, spi_pin_d, spi_pin_sn, spi_pin_q); output spi_pin_d, spi_pin_sn, spi_pin_c ; input spi_pin_q; endmodule
21-17 spi serial flash programming using ispjtag lattice semiconductor on latticeecp/ec fpgas figure 21-15. select pre-map preference editor this will start the editor; it should look similar to figure 21-16. the pre-ma p preference editor is where pin num- bers and other attributes are assigned to the various i/o in a design. figure 21-16 shows the proper pin selection for a 484 fpbga, it also shows proper selection of the i/o type (in this case lvcmos_3.3). each package requires a different pin selection; refer to table 21-5 and the schematic in figure 21-2 (in the hardware section of this docu- ment) for details. while it is recommended that the pin listed in table 21-5 be used as the gpio to wire to cclk, if the soft ip is instantiated into the user design then any pin can be selected - with the following cautions: 1. the default soft ip is built to use the default pin (see step 5 above under programming procedures), if a different pin is chosen the default soft ip will not work, i. e. you must instantiate the soft ip in your design. 2. do not select the dout pin as the gpio to wire to cclk. dout is an output during configuration, as is cclk. selecting dout will cause contention. 3. select a pin from a bank that has its v ccio connected to 3.3v.
21-18 spi serial flash programming using ispjtag lattice semiconductor on latticeecp/ec fpgas figure 21-16. preference editor after all of the pin attributes have been entered, close the preference editor, scroll down the right window, and dou- ble click on generate bitstream data (see figure 21-17). once the bitstream has been generated, go to the pro- gramming procedure section of this document. figure 21-17. generate bitstream data design notes the following tips will help insure fi rst pass success when us ing latticeecp/ec device s with spi serial flash. the programn pin can be left open, wired to a button, microprocessor, etc. the programn pin should be high at power-up, do not tie this pin to a pull-down resistor. there is a weak pull-up on this pin, but if needed, add an external 10k ohm pull-up resistor.
21-19 spi serial flash programming using ispjtag lattice semiconductor on latticeecp/ec fpgas the initn pin can be left open, connected to a microproce ssor, status register, or other latticeecp/ec devices. holding this pin low during co nfiguration will keep the device from configuring. do not tie this pin to a pull-down resistor. there is a weak pull-up on this pin but if needed add an external 10k ohm pull-up resistor. this pin can drive 8 ma. if driving an led that requires higher current, use an external driver/buffer. the done pin can be left open, connected to a micropro cessor, status register, or other lattice devices with done pins. if you connect this pin to other done pins then all of the done pins in t he chain will need to be set to open drain (using isplever or an attribute in your code) and a pull-up re sistor of about 10k will need to be added. holding this pin low during configuration will keep the la tticeecp/ec from waking up. do not tie this pin to a pull- down resistor. there is a weak pull-up on this pin but, if needed, add an external 10k ohm pull-up resistor. this pin can drive 8 ma. if driving an led that requires higher current, use an external driver/buffer. all of the spi pins are part of i/o bank 3; therefore v ccio for bank 3 must be connected to the same voltage as the spi serial flash. when utilizing spi serial flash, use of the spi pins as user pins is gener ally not recommended. if you must use one or more of the spi pins as user i/o, do not change the i/o type or direction. for example, if, during configura- tion, the spi pin you wish to use is an input you may only use the pin as an input, not an output, and it must be of type lvcmos33. if you set config_mode in the isplever preference editor to spi 3, and you are instantiating the soft ip, you will get warnings when you compile your code. this is due to the soft ip requiring use of the spi3 port as normal i/o during spi serial flash programming. you can avoid these warnings by selecting none or jtag instead of spi3 for the config_mode. if you set config_mode to spi3, or you instantiate the soft ip into your code (assigning the spi pins in the prefer- ence editor or your code), the spi pins will be protected from use by th e place and route tools. if you set config_mode to none or jtag, and you ar e not instantiating the soft ip, the spi pins will not be protected from use by the place and route tools. in this case, consider us ing the prohibit site ?command on the spi pins to keep the place and route tools from using these pins. this is particularly useful if your design is i/o bound and you want to allow place and route as much flexibility as possible. you ca n use the package view in the prefer- ence editor to place the prohibits. try to select an spi serial flash that is supported by your version of ispvm programming software. check for the latest spi serial flash vendor support in the latest version of ispvm software. the ispvm software is available at no charge from the lattice web site at www.latticesemi.com . if your spi serial flash is not supported on the latest software, please contact lattice technical support. if you have selected a gpio pin to drive the cclk that is other than the pin recommended in table 21-5 of this doc- ument you will need to instantiate the soft ip into your code. see the section abo ve entitled including the spi inter- face in the fpga design. conclusion by combining the new low cost latticeecp/ec family of de vices with low cost, third party serial flash, engineers can now take advantage of a very cost effective system solu tion. in addition to cost sa vings, the design also bene- fits from the space conscious 8-pin package. this new capability, in addition to the traditional configuration meth ods, is fully supported by the latest lattice tools. for more information on lattice' s family of devices, visit our web site at www.latticesemi.com .
21-20 spi serial flash programming using ispjtag lattice semiconductor on latticeecp/ec fpgas technical support assistance hotline: 1-800-lattice (north america) +1-503-268-8001 (outside north america) e-mail: techsupport@latticesemi.com internet: www.latticesemi.com
section iii. latticeecp/ec fam ily handbook revi sion history
march 2010 data sheet ?2010 lattice semiconductor corp. all lattice trademarks, registered trademarks, patents, and disclaimers are as listed at www .latticesemi.com/legal. all other brand or product names are trademarks or registered trademarks of their respective holders. the specifications and information herein are subject to change without notice. www.latticesemi.com 22-1 revision history date handbook revison number change summary previous lattice releases. january 2007 02.7 latticeecp/ec family data sheet updated to version 02.3. te c h n i c a l n o t e t n 1 0 5 1 u p d a t e d t o ve r s i o n 0 1 . 8 . te c h n i c a l n o t e t n 1 0 4 9 u p d a t e d t o ve r s i o n 0 4 . 1 . te c h n i c a l n o t e t n 1 0 5 2 u p d a t e d t o ve r s i o n 0 2 . 2 . te c h n i c a l n o t e t n 1 0 7 4 u p d a t e d t o ve r s i o n 0 1 . 3 . february 2007 02.8 latticeecp/ec family data sheet updated to version 02.4. may 2007 02.9 latticeecp/ec family data sheet updated to version 02.5. te c h n i c a l n o t e t n 1 0 4 9 u p d a t e d t o ve r s i o n 0 4 . 2 . te c h n i c a l n o t e t n 1 0 5 0 u p d a t e d t o ve r s i o n 0 3 . 2 . november 2007 03.0 latticeecp/ec family data sheet updated to version 02.6. te c h n i c a l n o t e t n 1 0 4 9 u p d a t e d t o ve r s i o n 0 4 . 3 . te c h n i c a l n o t e t n 1 0 5 2 u p d a t e d t o ve r s i o n 0 2 . 3 . february 2008 03.1 latticeecp/ec family data sheet updated to version 02.7. march 2010 03.2 technical note tn1052 updated to version 02.3. te c h n i c a l n o t e t n 1 0 7 4 u p d a t e d t o ve r s i o n 0 1 . 6 . march 2010 03.3 technical note tn1074 updated to version 01.7. note: for detailed revision changes, please refe r to the revision history for each document. latticeecp/ec family handbook revision history


▲Up To Search▲   

 
Price & Availability of LFECP10E-3FN484C

All Rights Reserved © IC-ON-LINE 2003 - 2022  

[Add Bookmark] [Contact Us] [Link exchange] [Privacy policy]
Mirror Sites :  [www.datasheet.hk]   [www.maxim4u.com]  [www.ic-on-line.cn] [www.ic-on-line.com] [www.ic-on-line.net] [www.alldatasheet.com.cn] [www.gdcy.com]  [www.gdcy.net]


 . . . . .
  We use cookies to deliver the best possible web experience and assist with our advertising efforts. By continuing to use this site, you consent to the use of cookies. For more information on cookies, please take a look at our Privacy Policy. X